- 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