The lerp on this script runs every update, how do I tell it to stop when its reached its lerp end point?
var toggle : int = 1;
var moving : boolean = false; //uses toggle to become true or false
var speed : float = 1; //speed of movement
var start : Vector3;
var end : Vector3;
function Update () {
if(moving == true) {
start = Vector3(transform.position.x,transform.position.y,0);
end = Vector3(transform.position.x,transform.position.y,1);
}else{
start = Vector3(transform.position.x,transform.position.y,1);
end = Vector3(transform.position.x,transform.position.y,0);
}
//Moves Gameobject
if(moving) {
transform.position = Vector3.Lerp(start, end, Time.deltaTime*speed);
}
//Controls Active from toggle - Active starts false
if(toggle == 1) {
moving = false;
}else{
moving = true;
}
}
function OnMouseDown() {
toggle = (toggle + 1)%2;
}
//GameObejct need Collider
Checking if two floating point values are identical is not a very efficient thing to do, and in fact they might never ever match, or take longer than usual to match.
– MeltdownHmm, yeah true ... @DaveA 's answer is probably best then. :P
– KleptomaniacWell, that's what Mathf.Approximately (f1, f2) exists for!
– syclamoth