Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
This question was closed Jan 22, 2019 at 02:54 AM by Deathhound for the following reason:

stupid question

avatar image
0
Question by Deathhound · Sep 02, 2013 at 05:16 AM · errorraycastraycastingjoystick

Errors that I don't know how to fix

2 scripts, 6 errors Joystick.js (Existing script, 1 error) raycast.js (Created script, 5 errors)

alt text

Joystick.js:

 //////////////////////////////////////////////////////////////
 // Joystick.js
 // Penelope iPhone Tutorial
 //
 // Joystick creates a movable joystick (via GUITexture) that 
 // handles touch input, taps, and phases. Dead zones can control
 // where the joystick input gets picked up and can be normalized.
 //
 // Optionally, you can enable the touchPad property from the editor
 // to treat this Joystick as a TouchPad. A TouchPad allows the finger
 // to touch down at any point and it tracks the movement relatively 
 // without moving the graphic
 //////////////////////////////////////////////////////////////
 
 #pragma strict
 
 @script RequireComponent( GUITexture )
 
 // A simple class for bounding how far the GUITexture will move
 class Boundary 
 {
     var min : Vector2 = Vector2.zero;
     var max : Vector2 = Vector2.zero;
 }
 
 static private var joysticks : Joystick[];                    // A static collection of all joysticks
 static private var enumeratedJoysticks : boolean = false;
 static private var tapTimeDelta : float = 0.3;                // Time allowed between taps
 
 var touchPad : boolean;                                     // Is this a TouchPad?
 var touchZone : Rect;
 var deadZone : Vector2 = Vector2.zero;                        // Control when position is output
 var normalize : boolean = false;                             // Normalize output after the dead-zone?
 var position : Vector2;                                     // [-1, 1] in x,y
 var tapCount : int;                                            // Current tap count
 
 private var lastFingerId = -1;                                // Finger last used for this joystick
 private var tapTimeWindow : float;                            // How much time there is left for a tap to occur
 private var fingerDownPos : Vector2;
 private var fingerDownTime : float;
 private var firstDeltaTime : float = 0.5;
 
 private var gui : GUITexture;                                // Joystick graphic
 private var defaultRect : Rect;                                // Default position / extents of the joystick graphic
 private var guiBoundary : Boundary = Boundary();            // Boundary for joystick graphic
 private var guiTouchOffset : Vector2;                        // Offset to apply to touch input
 private var guiCenter : Vector2;                            // Center of joystick
 
 function Start()
 {
     // Cache this component at startup instead of looking up every frame    
     gui = GetComponent( GUITexture );
     
     // Store the default rect for the gui, so we can snap back to it
     defaultRect = gui.pixelInset;    
     
     defaultRect.x += transform.position.x * Screen.width;// + gui.pixelInset.x; // -  Screen.width * 0.5;
     defaultRect.y += transform.position.y * Screen.height;// - Screen.height * 0.5;
     
     transform.position.x = 0.0;
     transform.position.y = 0.0;
         
     if ( touchPad )
     {
         // If a texture has been assigned, then use the rect ferom the gui as our touchZone
         if ( gui.texture )
             touchZone = defaultRect;
     }
     else
     {                
         // This is an offset for touch input to match with the top left
         // corner of the GUI
         guiTouchOffset.x = defaultRect.width * 0.5;
         guiTouchOffset.y = defaultRect.height * 0.5;
         
         // Cache the center of the GUI, since it doesn't change
         guiCenter.x = defaultRect.x + guiTouchOffset.x;
         guiCenter.y = defaultRect.y + guiTouchOffset.y;
         
         // Let's build the GUI boundary, so we can clamp joystick movement
         guiBoundary.min.x = defaultRect.x - guiTouchOffset.x;
         guiBoundary.max.x = defaultRect.x + guiTouchOffset.x;
         guiBoundary.min.y = defaultRect.y - guiTouchOffset.y;
         guiBoundary.max.y = defaultRect.y + guiTouchOffset.y;
     }
 }
 
 function Disable()
 {
     gameObject.active = false;
     enumeratedJoysticks = false;
 }
 
 function ResetJoystick()
 {
     // Release the finger control and set the joystick back to the default position
     gui.pixelInset = defaultRect;
     lastFingerId = -1;
     position = Vector2.zero;
     fingerDownPos = Vector2.zero;
     
     if ( touchPad )
         gui.color.a = 0.025;    
 }
 
 function IsFingerDown() : boolean
 {
     return (lastFingerId != -1);
 }
     
 function LatchedFinger( fingerId : int )
 {
     // If another joystick has latched this finger, then we must release it
     if ( lastFingerId == fingerId )
         ResetJoystick();
 }
 
 function Update()
 {    
     if ( !enumeratedJoysticks )
     {
         // Collect all joysticks in the game, so we can relay finger latching messages
         joysticks = FindObjectsOfType( Joystick ) as Joystick[];
         enumeratedJoysticks = true;
     }    
         
     var count = Input.touchCount;
     
     // Adjust the tap time window while it still available
     if ( tapTimeWindow > 0 )
         tapTimeWindow -= Time.deltaTime;
     else
         tapCount = 0;
     
     if ( count == 0 )
         ResetJoystick();
     else
     {
         for(var i : int = 0;i < count; i++)
         {
             var touch : Touch = Input.GetTouch(i);            
             var guiTouchPos : Vector2 = touch.position - guiTouchOffset;
     
             var shouldLatchFinger = false;
             if ( touchPad )
             {                
                 if ( touchZone.Contains( touch.position ) )
                     shouldLatchFinger = true;
             }
             else if ( gui.HitTest( touch.position ) )
             {
                 shouldLatchFinger = true;
             }        
     
             // Latch the finger if this is a new touch
             if ( shouldLatchFinger && ( lastFingerId == -1 || lastFingerId != touch.fingerId ) )
             {
                 
                 if ( touchPad )
                 {
                     gui.color.a = 0.15;
                     
                     lastFingerId = touch.fingerId;
                     fingerDownPos = touch.position;
                     fingerDownTime = Time.time;
                 }
                 
                 lastFingerId = touch.fingerId;
                 
                 // Accumulate taps if it is within the time window
                 if ( tapTimeWindow > 0 )
                     tapCount++;
                 else
                 {
                     tapCount = 1;
                     tapTimeWindow = tapTimeDelta;
                 }
                                             
                 // Tell other joysticks we've latched this finger
                 for ( var j : Joystick in joysticks )
                 {
                     if ( j != this )
                         j.LatchedFinger( touch.fingerId );
                 }                        
             }                
     
             if ( lastFingerId == touch.fingerId )
             {    
                 // Override the tap count with what the iPhone SDK reports if it is greater
                 // This is a workaround, since the iPhone SDK does not currently track taps
                 // for multiple touches
                 if ( touch.tapCount > tapCount )
                     tapCount = touch.tapCount;
                 
                 if ( touchPad )
                 {    
                     // For a touchpad, let's just set the position directly based on distance from initial touchdown
                     position.x = Mathf.Clamp( ( touch.position.x - fingerDownPos.x ) / ( touchZone.width / 2 ), -1, 1 );
                     position.y = Mathf.Clamp( ( touch.position.y - fingerDownPos.y ) / ( touchZone.height / 2 ), -1, 1 );
                 }
                 else
                 {                    
                     // Change the location of the joystick graphic to match where the touch is
                     gui.pixelInset.x =  Mathf.Clamp( guiTouchPos.x, guiBoundary.min.x, guiBoundary.max.x );
                     gui.pixelInset.y =  Mathf.Clamp( guiTouchPos.y, guiBoundary.min.y, guiBoundary.max.y );        
                 }
                 
                 if ( touch.phase == TouchPhase.Ended || touch.phase == TouchPhase.Canceled )
                     ResetJoystick();                    
             }            
         }
     }
     
     if ( !touchPad )
     {
         // Get a value between -1 and 1 based on the joystick graphic location
         position.x = ( gui.pixelInset.x + guiTouchOffset.x - guiCenter.x ) / guiTouchOffset.x;
         position.y = ( gui.pixelInset.y + guiTouchOffset.y - guiCenter.y ) / guiTouchOffset.y;
     }
     
     // Adjust for dead zone    
     var absoluteX = Mathf.Abs( position.x );
     var absoluteY = Mathf.Abs( position.y );
     
     if ( absoluteX < deadZone.x )
     {
         // Report the joystick as being at the center if it is within the dead zone
         position.x = 0;
     }
     else if ( normalize )
     {
         // Rescale the output after taking the dead zone into account
         position.x = Mathf.Sign( position.x ) * ( absoluteX - deadZone.x ) / ( 1 - deadZone.x );
     }
         
     if ( absoluteY < deadZone.y )
     {
         // Report the joystick as being at the center if it is within the dead zone
         position.y = 0;
     }
     else if ( normalize )
     {
         // Rescale the output after taking the dead zone into account
         position.y = Mathf.Sign( position.y ) * ( absoluteY - deadZone.y ) / ( 1 - deadZone.y );
     }
 }

raycast.js:

 var showGUI = false;
 var change_name : String = "Player";
 var tm : TextMesh = gameObject.GetComponent(TextMesh);
 
 function Update() {
     if(Input.GetKeyUp(KeyCode.Mouse0)) {
         var fwd = transform.TransformDirection
     (Vector3.forward);
         var hit :RaycastHit;
         
         if (Physics.Raycast (transform.position, fwd, hit, 60)) {
              if(hit.collider.gameObject.name == "Exit_Game_Button") {
                 Application.Quit();
             }
              if(hit.collider.gameObject.name == "Change_Name_Button") {
                  showGUI  = true;
                  Screen.showCursor = true;
             }
         }
     }
 }
 
 function OnGUI () {
     if (showGUI) {
         change_name = GUI.TextField (Rect (Screen.width/2-50, Screen.height/2-12.5,100,25), change_name, 25);
         if (GUI.Button (Rect (Screen.width/2-50, Screen.height/2+12.5,50,25), "OK")) {
             tm.text = (change_name);
             showGUI  = false;
             Screen.showCursor = false;
         }
         if (GUI.Button (Rect (Screen.width/2, Screen.height/2+12.5,50,25), "Cancel")) {
             showGUI  = false;
             Screen.showCursor = false;
         }
     }
 }
errors.png (37.0 kB)
Comment
Add comment
10 |3000 characters needed characters left characters exceeded
â–¼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

  • Sort: 
avatar image
0

Answer by DaveA · Sep 02, 2013 at 05:18 AM

Self-explanatory. You don't call functions when declaring variables. Declare the variable. Initialize it in Start()

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
â–¼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Follow this Question

Answers Answers and Comments

17 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Object reference not set to an instance of an object... again 1 Answer

Raycast hits and affects all items within the same tag 2 Answers

Game Pad Joystick not working! 2 Answers

Raycast exit point of collider 0 Answers

Raycasting doesn't hit terrains 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges