Open younggam opened 1 year ago
The lifetime for all particles is 2 * lifetime
. This is because for a regular particle system the last particle is emitted at lifetime
and can live for a lifetime
. When you write your own particle shader, you need to manage your particle lifetimes if you want to ensure that each individual particle is killed once it reaches lifetime
I have the same issue. When setting oneshot true and explosiveness 1, the emitting finished signal is emitted when all particals dies. But in the callback function, there is nothing happen when i set emitting true.
Godot version
v4.1.1.stable.official [bd6af8e0e]
System information
Godot v4.1.1.stable - Windows 10.0.19045 - Vulkan (Mobile) - dedicated NVIDIA GeForce RTX 2060 SUPER (NVIDIA; 31.0.15.3713) - Intel(R) Core(TM) i5-9600K CPU @ 3.70GHz (6 Threads)
Issue description
As initial velocity is 100, accel is 10, lifetime is 10, particles should be killed when they stop. But you can see that doesn't. Lifetime got x2.x times longer
I found that builtin ParticleProcessMaterial works well because it automatically deactivates its particles after lifetime. If this is intended, we need node or properties that can easily handle activation.
Steps to reproduce
Minimal reproduction project
v.zip