Add Engine::UpdateCount to sync gameplay logic updates with game loop rather than draw frames

This commit is contained in:
Wojtek Figat
2024-04-17 13:31:12 +02:00
parent 692a61c948
commit e53ab10145
4 changed files with 14 additions and 6 deletions

View File

@@ -270,11 +270,11 @@ void ParticleEffect::UpdateSimulation(bool singleFrame)
if (!IsActiveInHierarchy()
|| ParticleSystem == nullptr
|| !ParticleSystem->IsLoaded()
|| _lastUpdateFrame == Engine::FrameCount)
|| _lastUpdateFrame == Engine::UpdateCount)
return;
// Request update
_lastUpdateFrame = Engine::FrameCount;
_lastUpdateFrame = Engine::UpdateCount;
_lastMinDstSqr = MAX_Real;
if (singleFrame)
Instance.LastUpdateTime = (UseTimeScale ? Time::Update.Time : Time::Update.UnscaledTime).GetTotalSeconds();
@@ -371,7 +371,7 @@ void ParticleEffect::Sync()
SceneRenderTask* ParticleEffect::GetRenderTask() const
{
const uint64 minFrame = Engine::FrameCount - 2;
const uint64 minFrame = Engine::UpdateCount - 2;
// Custom task
const auto customViewRenderTask = CustomViewRenderTask.Get();