diff --git a/scene/2d/cpu_particles_2d.cpp b/scene/2d/cpu_particles_2d.cpp index af1e6d725d3..a25c02facd8 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 d23c5ba84af..9c83a6ae5ec 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 c44cab1d7b2..12fd33ffba6 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 7037eea1004..29b840b2488 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) {