What is wrong with my zipline script?

Hi, I am making a zipline thing, and I’m almost done, but there’s one error that I get when I walk over a trigger, it says “NullReferenceException: Object reference not set to an instance of an object
Zipline.OnTriggerEnter (UnityEngine.Collider Other) (at Assets/Zipline.js:15)” What is wrong here?

Here’s my script:

var EndPoint : Transform;

public var IsRiding = false;

var PlayerPhysic : CharacterMotor;

var Player : GameObject;

var Speed : float;

function OnTriggerEnter(Other : Collider){
	
	if(Other.gameObject.tag == "Player"){
	
	Player.position = Vector3.MoveTowards(Player.position, EndPoint.position, Speed * Time.detlaTime);	
		IsRiding = true;
		
    	}
	
   }
   
   
   function Update () {
   	
   	if(IsRiding == true){
   		
   	PlayerPhysic.enabled = false;	
   		
   		
   	}
   	
  
   	
   	 	if(IsRiding == false){
   		
   	PlayerPhysic.enabled = true;	
   		
   		
   	}
   	
   	
   	
   }

2 Answers

2

It looks like your Player or EndPoint variable is not assigned, so it is null. Trying to access any member of such null variable results in NullReferenceException

No, you see, I have assigned them properly, I think there is something else that is wrong. It mentions line #15 when I get the error, so I'm guessing I have done something wrong with my script.

Please add this just before line 15, i.e. Player.position = Vector3.MoveTowards(...) print(Player); print(EndPoint); and see what is printed to the console.

If it prints correct values, then you probably made some fix ;) Regarding movement - you can use lerping in coroutine to achieve smooth effect. For example please see [this answer][1]. [1]: http://answers.unity3d.com/questions/192438/coroutines-and-lerp-how-to-make-them-friends.html

You could always try this, very easy to use Zip n Swing | Animation Tools | Unity Asset Store