# Move value to 0 in 1.5 seconds

 0 Hey,I am looking for a method to move a variable's value to 0, in 1.5 seconds. I have a variable, which holds 250 at the start.I have tried it this way, but it doesn't work. ``````function Fade (target : SpriteText) { var startingFade : int = 250; var targetFade : int = 0; var fadeTime : float = 1.5; var rate = 1.0/fadeTime; var t : float = 0.0; while (t < 1.0) { t += Time.deltaTime * rate; target.SetColor(Color(255, 177, 0, t)); yield; } } `````` more ▼ asked Apr 11 '12 at 12:36 PM Dreeka 129 ● 50 ● 62 ● 65 add new comment (comments are locked) 10|3000 characters needed characters left ▼ Viewable by all users

 0 Use Mathf.Lerp. So like this: ``````var startingFade : float = 250; var timeInSeconds : float = 1.5; var rate : float; function Update () { if (rate < 1) { rate += Time.deltaTime / timeInSeconds; rate = Mathf.Clamp(rate, 0, timeInSeconds); startingFade = Mathf.Lerp(startingFade, 0, rate); } } ``````Hope that helps, Klep more ▼ answered Apr 11 '12 at 01:37 PM Kleptomaniac 2.5k ● 6 ● 11 ● 21 Actually, I'll also clamp rate to 1.5 so we get it exactly right. Apr 11 '12 at 01:53 PM Kleptomaniac add new comment (comments are locked) 10|3000 characters needed characters left ▼ Viewable by all users
 0 Have a look at this:http://answers.unity3d.com/questions/35610/variable-that-decreases-after-a-certain-amount-of.htmlhope this helps you. more ▼ answered Apr 11 '12 at 12:49 PM ExTheSea 2k ● 12 ● 23 ● 30 add new comment (comments are locked) 10|3000 characters needed characters left ▼ Viewable by all users
 0 Looking at your code, it seems that you want to go from one color to another (maybe the colors just differ by alpha value) over a period of time. There is exactly a function for that. It is called: ``````Color.Lerp ``````I'm going to ask you to study that in the Unity Scripting Reference documentation. But, from a high level, what I think you want is: ``````function Fade() { var fadeTime:float = 1.5; var targetTime:float = Time.time + fadeTime; var diff:float = targetTime - Time.time; while (diff >= 0) { target.SetColor(Color.lerp(endColor, startColor, diff/fadeTime)); yield; diff = targetTime - Time.time; } } `````` more ▼ answered Apr 11 '12 at 01:43 PM kolban 1.8k ● 2 ● 7 add new comment (comments are locked) 10|3000 characters needed characters left ▼ Viewable by all users

By Email: