Explorar o código

Make sure prefab diff remains on the object even after prefab update

BearishSun %!s(int64=10) %!d(string=hai) anos
pai
achega
0450044d02

+ 2 - 0
BansheeCore/Source/BsPrefabUtility.cpp

@@ -118,6 +118,8 @@ namespace BansheeEngine
 				if (prefabDiff != nullptr)
 				if (prefabDiff != nullptr)
 					prefabDiff->apply(newInstance);
 					prefabDiff->apply(newInstance);
 
 
+				newInstance->mPrefabDiff = prefabDiff;
+
 				newPrefabInstances.push_back({ newInstance, parent, newInstance->getLinkId() });
 				newPrefabInstances.push_back({ newInstance, parent, newInstance->getLinkId() });
 			}
 			}
 		}
 		}

+ 1 - 1
SBansheeEngine/Source/BsManagedSerializableField.cpp

@@ -801,7 +801,7 @@ namespace BansheeEngine
 					HManagedResource managedResource = static_resource_cast<ManagedResource>(value);
 					HManagedResource managedResource = static_resource_cast<ManagedResource>(value);
 
 
 					ScriptManagedResource* scriptResource;
 					ScriptManagedResource* scriptResource;
-					ScriptResourceManager::instance().getScriptResource(managedResource, &scriptResource, true);
+					ScriptResourceManager::instance().getScriptResource(managedResource, &scriptResource, false);
 
 
 					assert(scriptResource != nullptr); // Managed resource managed instance is created upon creation so it may never be null
 					assert(scriptResource != nullptr); // Managed resource managed instance is created upon creation so it may never be null