From 2736363d932fb5a27cf2a631380db97fa3955889 Mon Sep 17 00:00:00 2001 From: Wojciech Figat Date: Mon, 5 Sep 2022 14:33:20 +0200 Subject: [PATCH] Fix `OnSceneUnloaded` event to contain valid scene object --- Source/Engine/Level/Level.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Source/Engine/Level/Level.cpp b/Source/Engine/Level/Level.cpp index 98ad5a694..7f78c1561 100644 --- a/Source/Engine/Level/Level.cpp +++ b/Source/Engine/Level/Level.cpp @@ -831,12 +831,14 @@ bool LevelImpl::unloadScene(Scene* scene) if (scene->IsDuringPlay()) scene->EndPlay(); - // Simple enqueue scene root object to be deleted + // Remove from scenes list Level::Scenes.Remove(scene); - scene->DeleteObject(); // Fire event - CallSceneEvent(SceneEventType::OnSceneUnloaded, nullptr, sceneId); + CallSceneEvent(SceneEventType::OnSceneUnloaded, scene, sceneId); + + // Simple enqueue scene root object to be deleted + scene->DeleteObject(); // Force flush deleted objects so we actually delete unloaded scene objects (prevent from reloading their managed objects, etc.) ObjectsRemovalService::Flush();