Fix timescale in FixedTimestep particles update and when using Editor preview

#3811
This commit is contained in:
Wojtek Figat
2026-02-01 23:32:00 +01:00
parent 2ab8b9dd55
commit bf0c7fe0dc

View File

@@ -11,6 +11,10 @@
#include "Engine/Level/Scene/Scene.h"
#include "Engine/Engine/Time.h"
#include "Engine/Engine/Engine.h"
#if USE_EDITOR
#include "Editor/Editor.h"
#include "Editor/Managed/ManagedEditor.h"
#endif
ParticleEffect::ParticleEffect(const SpawnParams& params)
: Actor(params)
@@ -465,7 +469,12 @@ void ParticleEffect::Update()
if (UpdateMode == SimulationUpdateMode::FixedTimestep)
{
// Check if last simulation update was past enough to kick a new on
const float time = Time::Update.Time.GetTotalSeconds();
bool useTimeScale = UseTimeScale;
#if USE_EDITOR
if (!Editor::IsPlayMode && IsDuringPlay())
useTimeScale = false;
#endif
const float time = (useTimeScale ? Time::Update.Time : Time::Update.UnscaledTime).GetTotalSeconds();
if (time - Instance.LastUpdateTime < FixedTimestep)
return;
}
@@ -475,9 +484,6 @@ void ParticleEffect::Update()
#if USE_EDITOR
#include "Editor/Editor.h"
#include "Editor/Managed/ManagedEditor.h"
void ParticleEffect::UpdateExecuteInEditor()
{
// Auto-play in Editor