void Update()
{
if(Input.anyKeyDown){
stop();
return;
}
float lerp = 1f-Vector3.Distance(trans.position,node.transform.position)/distanceToNextNode;
float curSpeed=baseSpeed;
if(!fixedSpeed&&node.useAnimationCurve){
curSpeed*=node.curve.Evaluate(lerp);
curSpeed = Mathf.Max(curSpeed,0.001f);//the camera must be moving at all times!
}
trans.position = Vector3.MoveTowards(trans.position,node.transform.position,curSpeed*Time.deltaTime);
trans.rotation = Quaternion.Slerp (oldRot,node.transform.rotation,lerp);
if(trans.position.Equals(node.transform.position)){
// velocity = Vector3.zero;
// oldPos = node.transform.position;
oldRot = node.transform.rotation;
if(node.HasNext){
distanceToNextNode = node.DistanceToNextNode;
node = node.nextNode;
if(node.instantFade){
trans.position = node.transform.position;
trans.rotation = node.transform.rotation;
}
}else{
stop();
}
}
}