diff --git a/Source/Engine/Particles/ParticleEffect.cpp b/Source/Engine/Particles/ParticleEffect.cpp index c1031f4ac..de4abb53d 100644 --- a/Source/Engine/Particles/ParticleEffect.cpp +++ b/Source/Engine/Particles/ParticleEffect.cpp @@ -546,6 +546,16 @@ void ParticleEffect::OnParticleSystemModified() } void ParticleEffect::OnParticleSystemLoaded() +{ + ApplyModifiedParameters(); + auto& emitters = ParticleSystem.Get()->Emitters; + for (auto& emitter : emitters) + { + emitter.Loaded.BindUnique(this); + } +} + +void ParticleEffect::OnParticleEmitterLoaded() { ApplyModifiedParameters(); } @@ -814,6 +824,10 @@ void ParticleEffect::OnActiveInTreeChanged() CacheModifiedParameters(); Instance.ClearState(); } + else + { + ApplyModifiedParameters(); + } } void ParticleEffect::OnTransformChanged() diff --git a/Source/Engine/Particles/ParticleEffect.h b/Source/Engine/Particles/ParticleEffect.h index 9be31c4c7..2727ac794 100644 --- a/Source/Engine/Particles/ParticleEffect.h +++ b/Source/Engine/Particles/ParticleEffect.h @@ -387,6 +387,7 @@ private: void ApplyModifiedParameters(); void OnParticleSystemModified(); void OnParticleSystemLoaded(); + void OnParticleEmitterLoaded(); public: // [Actor]