From 88b46d1720a671cc6d96e354cb67a592ed7ff7f9 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Thu, 25 Aug 2022 20:54:25 +0200 Subject: [PATCH] Fix crash when changing actor scene --- Source/Engine/Level/Actor.cpp | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/Source/Engine/Level/Actor.cpp b/Source/Engine/Level/Actor.cpp index 020f2d872..de2952df7 100644 --- a/Source/Engine/Level/Actor.cpp +++ b/Source/Engine/Level/Actor.cpp @@ -103,22 +103,28 @@ void Actor::SetSceneInHierarchy(Scene* scene) void Actor::OnEnableInHierarchy() { - OnEnable(); - - for (int32 i = 0; i < Children.Count(); i++) + if (IsActiveInHierarchy() && GetScene() && !_isEnabled) { - Children[i]->OnEnableInHierarchy(); + OnEnable(); + + for (int32 i = 0; i < Children.Count(); i++) + { + Children[i]->OnEnableInHierarchy(); + } } } void Actor::OnDisableInHierarchy() { - for (int32 i = 0; i < Children.Count(); i++) + if (IsActiveInHierarchy() && GetScene() && _isEnabled) { - Children[i]->OnDisableInHierarchy(); - } + for (int32 i = 0; i < Children.Count(); i++) + { + Children[i]->OnDisableInHierarchy(); + } - OnDisable(); + OnDisable(); + } } bool Actor::IsSubClassOf(const Actor* object, const MClass* klass)