diff --git a/scene/2d/cpu_particles_2d.cpp b/scene/2d/cpu_particles_2d.cpp index af1e6d725d..a25c02facd 100644 --- a/scene/2d/cpu_particles_2d.cpp +++ b/scene/2d/cpu_particles_2d.cpp @@ -45,7 +45,7 @@ void CPUParticles2D::set_emitting(bool p_emitting) { return; } - if (p_emitting && !use_fixed_seed) { + if (p_emitting && !use_fixed_seed && one_shot) { set_seed(Math::rand()); } diff --git a/scene/2d/gpu_particles_2d.cpp b/scene/2d/gpu_particles_2d.cpp index d40b9047b6..58d7d9bbe4 100644 --- a/scene/2d/gpu_particles_2d.cpp +++ b/scene/2d/gpu_particles_2d.cpp @@ -41,7 +41,7 @@ void GPUParticles2D::set_emitting(bool p_emitting) { // Do not return even if `p_emitting == emitting` because `emitting` is just an approximation. - if (p_emitting && p_emitting != emitting && !use_fixed_seed) { + if (p_emitting && p_emitting != emitting && !use_fixed_seed && one_shot) { set_seed(Math::rand()); } if (p_emitting && one_shot) { diff --git a/scene/3d/cpu_particles_3d.cpp b/scene/3d/cpu_particles_3d.cpp index c44cab1d7b..12fd33ffba 100644 --- a/scene/3d/cpu_particles_3d.cpp +++ b/scene/3d/cpu_particles_3d.cpp @@ -48,7 +48,7 @@ void CPUParticles3D::set_emitting(bool p_emitting) { return; } - if (p_emitting && !use_fixed_seed) { + if (p_emitting && !use_fixed_seed && one_shot) { set_seed(Math::rand()); } diff --git a/scene/3d/gpu_particles_3d.cpp b/scene/3d/gpu_particles_3d.cpp index 7555a9af02..4048750d26 100644 --- a/scene/3d/gpu_particles_3d.cpp +++ b/scene/3d/gpu_particles_3d.cpp @@ -42,7 +42,7 @@ AABB GPUParticles3D::get_aabb() const { void GPUParticles3D::set_emitting(bool p_emitting) { // Do not return even if `p_emitting == emitting` because `emitting` is just an approximation. - if (p_emitting && p_emitting != emitting && !use_fixed_seed) { + if (p_emitting && p_emitting != emitting && !use_fixed_seed && one_shot) { set_seed(Math::rand()); } if (p_emitting && one_shot) {