Hello I'm trying to use the Stop Action parameter in the Particle System Main Module, to destroy a particle system when it's done emitting. The effect in question is an explosion. Let's say it has a fire part (quick), and a residual smoke part (lasts longer than the fire). The smoke particle system is a child of the fire particle system. If I set the "Stop Action" of the fire to "Destroy", then the particle system destroys itself as soon as the fire is done emitting. This results in the smoke instantly disappearing with it. I know there are numerous workarounds for this, but to me, the logical way for this to work would be for Unity to wait until the particle system AND any child particle systems have no active particles. I'm pretty sure that's how ParticleSystem.IsEmitting worked when I was using that. Is there a reason for the current behavior? Bug? [unity 2019.1.14f1]
Hi, The Stop Action isn't currently aware of child systems or sub-emitters. It's somewhere between bug and feature request You are welcome to log it, and we may fix it if we figure out a good way.
Thanks - reported it as a 'bug', on the basis that it's not consistent with the behaviour of IsEmitting, and IsAlive has a flag to check the status of child particle systems too. So yeah, bug on one hand, feature request on the other.
Hi, we’ve finally fixed this, so that a stop action won’t be triggered until all a system’s children/sub-emitters have also stopped. It’s a change in behaviour, so is unlikely to be backported, and is going to be available in 2020.2.0b2.