- Home /
 
java NullReferenceException with 3 button game, works for 1 key but not the other 2.
So i am working on the Walker Boys LAB1 course and i decided since alot of my friends are starcraft 2 players id add different button support for the experience, i am glad i decided to do this as i am already having issues.
here's the code, i know my code is really spread out, i tend to enjoy it that way and its a habbit i tend to nip in the bud soon as im more fluent with the language. SO issue being this
var enemyScript = hit.transform.GetComponent(scriptEnemy);
enemyScript.numberOfClicks-=1;
now it WORKS! it pulls from the other enemyscript BUT further down for the right mouse button it wont work, even though the variable is declared. i tried moving the variable with the rest but it only seems to want to work when its in the same block as the used variable/numberOfClicks.
and i cant declare the variable twice, scratch that i don't Want to. [ i think i might be able to overload the variable but i try to avoid that]
so... what gives? the variables defined so shouldn't it work in other functions while its separated? or is something in the getcomponent messing it up... ? Im new to java so this is probally silly. Spent too much time developing in ARMA 2 working with pascal :/
 function Update () 
 {
         // use the mouse button to select our game objects within the scene
         var hit : RaycastHit;
         var ray : Ray = Camera.main.ScreenPointToRay(Input.mousePosition);
         var position = Vector3(Random.Range(-6,6),Random.Range(-4,4),0);
         
             //Left mouse button
             if(Input.GetMouseButtonDown(0))    
             {
                 print("LMB works");
                 
                 if (Physics.Raycast(ray, hit, rayDistance))
                     {
                         if(hit.transform.tag == tagName)
                                     {    
                                         var enemyScript = hit.transform.GetComponent(scriptEnemy);
                                         enemyScript.numberOfClicks-=1;
                                     }
                         else
                             {
                                 print("This is not an enemy");
                             }
                     }
             }
             //Right mouse button
             if(Input.GetMouseButtonDown(1))    
             {
                 print("RMB works");
                 
                 if (Physics.Raycast(ray, hit, rayDistance))
                     {
                         if(hit.transform.tag == tagName)
                                     {
                                         
                                         enemyScript.numberOfClicks-=1;
                                     }
                         else
                             {
                                 print("This is not an enemy");
                             }
                     }
             }
 
               ERROR MESSAGE :
 NullReferenceException: Object reference not set to an instance of an object
 Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.String cacheKeyName, System.Type[] cacheKeyTypes, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
 Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.Object[] args, System.String cacheKeyName, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
 Boo.Lang.Runtime.RuntimeServices.GetProperty (System.Object target, System.String name)
 UnityScript.Lang.UnityRuntimeServices.GetProperty (System.Object target, System.String name)
 scriptPlayer.Update () (at Assets/scriptPlayer.js:48)
 
              Your answer
 
             Follow this Question
Related Questions
Unity not recognizing Instantiate? JavaScript 1 Answer
Sprint script help, I keep through the floor 0 Answers
Object moving on its own 0 Answers
Android build problem. 0 Answers
Unity and Java Programming Question 3 Answers