From fa77a52a2cd314537fc997c8218145faa81068c7 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Sun, 27 Aug 2023 20:08:27 +0200 Subject: [PATCH] Fix prefab apply bug when one of the prefabs in project is broken --- Source/Engine/Level/Prefabs/Prefab.Apply.cpp | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/Source/Engine/Level/Prefabs/Prefab.Apply.cpp b/Source/Engine/Level/Prefabs/Prefab.Apply.cpp index 53453afe9..5ea8ad0a4 100644 --- a/Source/Engine/Level/Prefabs/Prefab.Apply.cpp +++ b/Source/Engine/Level/Prefabs/Prefab.Apply.cpp @@ -675,20 +675,12 @@ bool Prefab::ApplyAll(Actor* targetActor) } } - // Setup default instances - for (int32 i = 0; i < allPrefabs.Count(); i++) + // Setup default instances (skip invalid prefabs) + for (int32 i = allPrefabs.Count() - 1; i >= 0; i--) { Prefab* prefab = allPrefabs[i]; - if (prefab->WaitForLoaded()) - { - LOG(Warning, "Waiting for nesting prefab asset load failed."); - return true; - } - if (prefab->GetDefaultInstance() == nullptr) - { - LOG(Warning, "Failed to create default prefab instance for the nested prefab asset."); - return true; - } + if (prefab->WaitForLoaded() || prefab->GetDefaultInstance() == nullptr) + allPrefabs.RemoveAt(i); } }