Platform Input Controller Script NullReferenceException stopping character from moving, can anyone fix this?

Hai people. In the Platform Input Controller Script, there is a NullReferenceException error in line 35 of this code, can anyone help me with what it is?

// This makes the character turn to face the current movement speed per default.
var autoRotate : boolean = true;
var maxRotationSpeed : float = 360;

private var motor : CharacterMotor;

// Use this for initialization
function Awake () {
 motor = GetComponent(CharacterMotor);
}

// Update is called once per frame
function Update () {
 // Get the input vector from kayboard or analog stick
 var directionVector = new Vector3(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"), 0);
 
 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;
 }
 
 // Rotate the input vector into camera space so up is camera's up and right is camera's right
 directionVector = Camera.main.transform.rotation * directionVector;
 
 // Rotate input vector to be perpendicular to character's up vector
 var camToCharacterSpace = Quaternion.FromToRotation(-Camera.main.transform.forward, transform.up);
 directionVector = (camToCharacterSpace * directionVector);
 
 // Apply the direction to the CharacterMotor
 motor.inputMoveDirection = directionVector;
 motor.inputJump = Input.GetButton("Jump");
 
 // Set rotation to the move direction 
 if (autoRotate && directionVector.sqrMagnitude > 0.01) {
 var newForward : Vector3 = ConstantSlerp(
 transform.forward,
 directionVector,
 maxRotationSpeed * Time.deltaTime
 );
 newForward = ProjectOntoPlane(newForward, transform.up);
 transform.rotation = Quaternion.LookRotation(newForward, transform.up);
 }
}

function ProjectOntoPlane (v : Vector3, normal : Vector3) {
 return v - Vector3.Project(v, normal);
}

function ConstantSlerp (from : Vector3, to : Vector3, angle : float) {
 var value : float = Mathf.Min(1, angle / Vector3.Angle(from, to));
 return Vector3.Slerp(from, to, value);
}

// Require a character controller to be attached to the same game object
@script RequireComponent (CharacterMotor)
@script AddComponentMenu ("Character/Platform Input Controller")

Thanks if you can help :smiley:

If you are referring to this line:

directionVector = Camera.main.transform.rotation * directionVector;

One way for this line to generate a null reference is if you’ve renamed your main camera. For ‘Camera.main’ to work, the camera must be named ‘Main Camera’.