FPSInputController NullReferenceException

I keep getting a NullReferenceException and I don’t know how to fix it. I have searched everywhere and I can’t find anything that will help. Can someone Please help me?

**

Here it the error:

**

NullReferenceException: Object reference not set to an instance of an object
FPSInputController.Update () (at Assets/Standard Assets/Character Controllers/Sources/Scripts/FPSInputController.js:52)

**

Here is the Code:

**

    private var motor : CharacterMotor;
    
    // Use this for initialization
    function Awake () {
    	
    	if(networkView.isMine == true)
    	{
    		motor = GetComponent(CharacterMotor);
    	}
    	
    	else
    	{
    		enable = false;
    	}
    }
    
    // Update is called once per frame
    function Update () {
    
    	if (Screen.lockCursor == true)
    	{
    		// Get the input vector from kayboard or analog stick
    		var directionVector = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
    	
    		if (directionVector != Vector3.zero) {
    		// Get the length of the directon vector and then normalize it
    		// Dividing by the length is cheaper than normalizing when we already have the length anyway
    		var directionLength = directionVector.magnitude;
    		directionVector = directionVector / directionLength;
    		
    		// Make sure the length is no bigger than 1
    		directionLength = Mathf.Min(1, directionLength);
    		
    		// Make the input vector more sensitive towards the extremes and less sensitive in the middle
    		// This makes it easier to control slow speeds when using analog sticks
    		directionLength = directionLength * directionLength;
    		
    		// Multiply the normalized direction vector by the modified length
    		directionVector = directionVector * directionLength;
    		}
    	
    		// Apply the direction to the CharacterMotor
    		motor.inputMoveDirection = transform.rotation * directionVector;
    		motor.inputJump = Input.GetButton("Jump");
    	}
    	
    	
    	if(Screen.lockCursor == false)
    	{
    		directionVector = new Vector3(0,0,0);
    	
    		motor.inputMoveDirection = transform.rotation * directionVector;
    	}
    	
    	}
    
    
    // Require a character controller to be attached to the same game object
    @script RequireComponent (CharacterMotor)
    @script AddComponentMenu ("Character/FPS Input Controller")

I guess I will say it this way: you should add some debugging to check the value of that variable. Couple of things to check:

  1. Whatever object you have attached this script to, does it have a CharacterMotor component on it? (Just making sure)
  2. If you verified that the object the script is attached to has a character motor component attached to it, you should start by putting some code in to verify that the motor variable being null is the actual problem. Something like this (might have syntax issues since I work in C# not JS):

    if (motor == null)
    {
    Debug.Log("The motor object is null!");
    }
    else
    {
    //put the stuff you are trying to use the motor object for here
    }

What I am guessing is that you are going to see the “The motor object is null!” message over and over again for each Update call. This will indicate that there is a problem with actually getting the motor object the way you are doing it using GetComponent. Looking at the documentation for that method (http://docs.unity3d.com/Documentation/ScriptReference/GameObject.GetComponent.html), it returns null if the particular component is not attached, so I am guessing that is it.