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

hello everyone

i am working on a pokemon game and i am basicly following on someone guide on youtube…
any way he gave this code

var startPoint : Vector3;
var endPoint : Vector3;
var speed : float;
private var increment:float;
var isMoving : boolean;

function Start () {

startPoint = transform.position;
endPoint = transform.position;

}

function Update () {

if(increment <=1 && isMoving == true) {
increment += speed/100;
Debug.Log("Moving");
}
else {
isMoving = false;
Debug.Log("Stopped");
}
if(isMoving)
transform.position = Vector3.Lerp(startPoint, endPoint, increment);


if(Input.GetKey("w") && isMoving == false) {

increment = 0;
isMoving = true;
startPoint = transform.position;
endPoint = new Vector3(transform.position.x,transform.position.y,transform.postion.z + 20);
}
}

basicly when you run the game and prees the key W the player should move only he give me this code:

NullReferenceException: Object reference not set to an instance of an object
Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.String cacheKeyName, System.Type[] cacheKeyTypes, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.Object[] args, System.String cacheKeyName, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
Boo.Lang.Runtime.RuntimeServices.GetProperty (System.Object target, System.String name)
UnityScript.Lang.UnityRuntimeServices.GetProperty (System.Object target, System.String name)

anyone knows why?

thanks!

After more trial and error. The problem was a typo of transform.position.z on the last line.

When double clicking the error in Unity console I was taken to the line where the error was in monoDevelop.

Also make sure the speed is set in the inspector.

[ignore]
After some trial of error, it was the Input.GetKey (“w”) causing the problem. Its solved by using key code instead.
[/ignore]

var startPoint : Vector3;
var endPoint : Vector3;
var speed : float;
private var increment:float;
var isMoving : boolean;

function Start () {
	startPoint = transform.position;
	endPoint = transform.position;

}

function Update () {

	if(increment <=1 && isMoving == true) {
		increment += speed/100;
		Debug.Log("Moving");
	} else {
		isMoving = false;
		Debug.Log("Stopped");
	}

	if(isMoving) transform.position = Vector3.Lerp(startPoint, endPoint, increment);
		
	if (Input.GetKey (KeyCode.W) && isMoving == false){
		increment = 0;
		isMoving = true;
		startPoint = transform.position;
		endPoint = new Vector3(transform.position.x,transform.position.y,transform.position.z + 20);
	}
	
}