- Home /
MoveTowards based on time
I want to use :
particleSystemLifetime = Mathf.MoveTowards(particleSystemLifetime, 0, speed * Time.deltaTime);
to simply make a particle system's lifetime go from 10 to 0 in x seconds.
I cannot figure out how I can set it up so that the speed I use will bring the particle system's lifetime to 0 in x seconds.
Thanks for any help!
Answer by Priyanshu · Jan 05, 2015 at 09:12 PM
To simply make a particle system's lifetime go from 10 to 0 in x seconds.
Replace your code with this:
particleSystemLifetime = Mathf.MoveTowards(particleSystemLifetime, 0, 10/speed * Time.deltaTime);
Now if you want to end the particle system's lifetime in 25 seconds. Change the 'speed' to 25.
Answer by Mmmpies · Jan 05, 2015 at 08:29 PM
Set your length in seconds, then set the start point for the lifetime, in your case 10.
Store the seconds in a value called SecondsLeft.
When starting this process set CurValue = 10;
In update: Then find the difference from your CurValue to the value you want to end up at. In this case this is easy as it's just the curValue because you're aiming for 0 as the final value.
curValue -= (curValue * (Time.deltaTime / SecondsLeft));
SecondsLeft = SecondsLeft - Time.deltaTime;
myParticle.StartLifetime = curValue;
I think it should be something like that but code's written from my head so let me know if it's acting odd and I'll try and create a test scene to check it.
Your answer
Follow this Question
Related Questions
Moving 2D sprite along a path 0 Answers
Moving an UI element from point A to point B 1 Answer
Creating Projectile - MoveTo/Lerp 0 Answers
Something like Color.MoveTowards ? 2 Answers
Move Transform to Target in X seconds 3 Answers