- Home /
Object reference not set despite assigning instance of an object in GUI
Hiya, i've just started looking at Unity today and was following section 6 of [this tutorial.][1]
Currently I have a spotlight looking at the camera which i can move around using WASD. I did this with the a script called Follow.js:
#pragma strict
var target : Transform;
function Start () {
}
function Update () {
transform.LookAt(target);
}
I was able to set the target in the unity GUI to my camera object with no issue. Then i created this Switch.js script that should simply switch the spotlight to Follow a PhysicsCube object on press of the space bar.
#pragma strict
var switchToTarget : Transform;
function Start () {
}
function Update () {
if(Input.GetButtonDown("Jump"))
GetComponent(Follow).target = switchToTarget;
}
Again i set the switchToTarget in the GUI, under the Inspector for Spotlight. [This picture][2] shows what's relevant.
And yet now when i hit the play button i get - "NullReferenceException: Object reference not set to an instance of an object" at the line - GetComponent(Follow).target = switchToTarget;
although i'm certain switchToTarget is set to a cube in the GUI (see picture) [1]: http://download.unity3d.com/support/documentation/Images/manual/ScriptingTutorial.pdf [2]: http://i.imgur.com/bVidO.png
Answer by whydoidoit · May 29, 2012 at 01:21 PM
It's not getting the Follow from the GetComponent, which means that whatever that second script is attached to, it doesn't have a Follow script attached to it. You are on the right lines, check that both scripts are attached to the same object.
If what I said isn't how you want it to work and you are hoping GetCompnent(Follow) is getting the script on some other game object then that isn't how it works: in that case you need to find the right game object and call GetComponent on that instead:
GameObject.Find("SomeName").GetComponent(Follow).target = switchToTarget.
Your answer
Follow this Question
Related Questions
Setting Scroll View Width GUILayout 1 Answer
Can someone help me fix my Javascript for Flickering Light? 6 Answers
The name 'Joystick' does not denote a valid type ('not found') 2 Answers
Arrange ints from biggest to smallest and display them in a table 1 Answer
If statement only work once? 1 Answer