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!

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.

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.