Просмотр исходного кода

Fixing an issue where applying a prefab diff to an uninstantiated scene object would instatiate it

BearishSun 9 лет назад
Родитель
Сommit
64535d3e8c

+ 6 - 3
Source/BansheeCore/Source/BsPrefabUtility.cpp

@@ -141,9 +141,12 @@ namespace bs
 			entry.newInstance->mLinkId = entry.originalLinkId;
 		}
 
-		// Finally, instantiate everything
-		for (auto& entry : newPrefabInstanceData)
-			entry.newInstance->_instantiate(true);
+		// Finally, instantiate everything if the top scene object is live (instantiated)
+		if (topLevelObject->isInstantiated())
+		{
+			for (auto& entry : newPrefabInstanceData)
+				entry.newInstance->_instantiate(true);
+		}
 
 		gResources().unloadAllUnused();
 	}

+ 1 - 1
Source/SBansheeEngine/Source/BsManagedComponent.cpp

@@ -390,7 +390,7 @@ namespace bs
 		}
 
 		triggerOnReset();
-	}
+	}
 
 	void ManagedComponent::onInitialized()
 	{