View difference between Paste ID: GiFpeR0e and iUJztpat
SHOW: | | - or go back to the newest paste.
1
var colorStart : Color = Color.red;
2
var colorEnd : Color = Color.green;
3-
var duration : float = 1.0;
3+
var animationDuration : float = 1.0;
4-
var elapsed: float = 0.0;
4+
private var startTime : float;
5-
var finished : boolean = false;
5+
private var endTime : float;
6-
var animDurationInFrames : float = 0.4;
6+
private var finished = true;
7
 
8
function Update () {
9
10
    if (!finished) {
11-
        if (elapsed < duration && finished == false) {
11+
    
12-
                renderer.material.color = Color.Lerp (colorStart, colorEnd, elapsed);
12+
        var i = Mathf.InverseLerp(startTime, endTime, Time.time);
13-
        } else {
13+
        renderer.material.color = Color.Lerp (colorStart, colorEnd, i);
14-
                finished = true;
14+
        finished = (Time.time > endTime);
15
                
16
    } else {
17-
		if (finished == true) {
17+
    
18-
				renderer.material.color = Color.Lerp (colorEnd, colorStart, elapsed);
18+
        if (renderer.enabled) {
19-
		}
19+
            StartAnimation();
20
        }
21-
        if (gameObject.renderer.enabled && gameObject.renderer.enabled == true) {
21+
22-
                        elapsed = elapsed + (Time.deltaTime / animDurationInFrames);
22+
    }
23
24
}
25-
        if (gameObject.renderer.enabled == false) {
25+
26-
        	elapsed = 0.0;
26+
function StartAnimation() {
27-
        	finished = false;
27+
28
    startTime = Time.time;
29
    endTime = startTime + animationDuration;
30
    finished = false;
31
    
32
}