- Home /
"Object reference not set to an instance of an object" (Super simple)
I'm positive that the solution to this is super simple, but I'm just not well-versed enough with Javascript to figure it out.
I'm trying to make a third-person shooter kind of thing, with the mouse controlling an empty game object ("aimer"), which the turret points towards to aim. This script is applied to the turret, and the empty game object is selected as the variable in the inspector.
var aimer:GameObject;
var zPos:float;
function Start () {
zPos = transform.position.z - Camera.main.transform.position.z;
}
function Update () {
var xPos:float = aimer.x; //These lines are the problem.
var yPos:float = aimer.y; //I just don't know how to refer to "aimer."
var cubeScreenPos:Vector3 = Camera.main.WorldToScreenPoint(transform.position);
var newX:float = cubeScreenPos.x + (xPos - cubeScreenPos.x)/8;
var newY:float = cubeScreenPos.y + (yPos - cubeScreenPos.y)/8;
var vector3:Vector3 = Camera.main.ScreenToWorldPoint (Vector3(xPos, yPos, zPos));
transform.position = vector3;
}
There might be better ways of doing this whole thing, but I just really want to know how to fix this.
Thanks!
Answer by Fattie · Sep 26, 2013 at 08:31 AM
I'm pretty sure you mean is ..
aimer.transform.position.x
.
Don't forget that aimer is a GameObject. game objects generally have a Transform. And Transforms then have a Position.
If you had just glanced here
http://docs.unity3d.com/Documentation/ScriptReference/GameObject.html
you would have instantly seen .. note the section "variables" .. that you can type ".transform" after your game object, so that's aimer.transform in your example.
Then you could click on that "transform" word in blue and see the doco there - and so on.
Enjoy
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Overlap Detection HELP!! 0 Answers
Left Click to Play Audio Help? 0 Answers
Possibly simple Raycasting question 1 Answer