Search code examples
unity-game-engineunityscript

Unity: getting NullReferenceException using javascript


I'm a newby in Unity and I'm following the first Unity tutorial. When i try to run my first script i get this error:

NullReferenceException: Object reference not set to an instance of an object

Here is my script:

#pragma strict
private var rb:Rigidbody;
private var player:GameObject;

function start() {
    player = GameObject.Find("Player");
    rb = player.GetComponent(Rigidbody);
}

function FixedUpdate() {
    var moveHorizontal:float = Input.GetAxis("Horizontal");
    var moveVertical:float = Input.GetAxis("Vertical");

    var movement:Vector3 = new Vector3(moveHorizontal , 0.0f , moveVertical);
    rb.AddForce(movement);
}

I have no idea what am I doing wrong.

UPDATE:

Here is my scene:

enter image description here

UPDATE: I've put print in both functions, and it seems like start is not being called at all, and that is why my variable is not being initialized. Any idea?


Solution

  • So finally after a few hours, I got it. The problem was that start function should be upper case Start. Since it was lowercase, it wasn't called and rb was not initialized.

    And here is the final script:

    #pragma strict
    private var rb:Rigidbody;
    
    
    function Start() {
        rb = GetComponent(Rigidbody);
    }
    
    function FixedUpdate() {
        var moveHorizontal:float = Input.GetAxis("Horizontal");
        var moveVertical:float = Input.GetAxis("Vertical");
    
        var movement:Vector3 = new Vector3(moveHorizontal , 0.0f , moveVertical);
        rb.AddForce(movement);
    }