Apply particle effect parameter overrides when emitter is changed and when activated in the tree.

This commit is contained in:
Chandler Cox
2025-07-05 19:36:45 -05:00
parent dbd8297612
commit d698bf96cc
2 changed files with 15 additions and 0 deletions

View File

@@ -546,6 +546,16 @@ void ParticleEffect::OnParticleSystemModified()
} }
void ParticleEffect::OnParticleSystemLoaded() void ParticleEffect::OnParticleSystemLoaded()
{
ApplyModifiedParameters();
auto& emitters = ParticleSystem.Get()->Emitters;
for (auto& emitter : emitters)
{
emitter.Loaded.BindUnique<ParticleEffect, &ParticleEffect::OnParticleEmitterLoaded>(this);
}
}
void ParticleEffect::OnParticleEmitterLoaded()
{ {
ApplyModifiedParameters(); ApplyModifiedParameters();
} }
@@ -814,6 +824,10 @@ void ParticleEffect::OnActiveInTreeChanged()
CacheModifiedParameters(); CacheModifiedParameters();
Instance.ClearState(); Instance.ClearState();
} }
else
{
ApplyModifiedParameters();
}
} }
void ParticleEffect::OnTransformChanged() void ParticleEffect::OnTransformChanged()

View File

@@ -387,6 +387,7 @@ private:
void ApplyModifiedParameters(); void ApplyModifiedParameters();
void OnParticleSystemModified(); void OnParticleSystemModified();
void OnParticleSystemLoaded(); void OnParticleSystemLoaded();
void OnParticleEmitterLoaded();
public: public:
// [Actor] // [Actor]