Fix missing initialization of scene objects added from prefab

#1924
This commit is contained in:
Wojtek Figat
2023-11-19 20:26:14 +01:00
parent fc2d9a745f
commit d90a0aa3f4
3 changed files with 11 additions and 0 deletions

View File

@@ -1064,6 +1064,7 @@ bool Level::loadScene(rapidjson_flax::Value& data, int32 engineBuild, Scene** ou
}
}
}
prefabSyncData.InitNewObjects();
}
// /\ all above this has to be done on an any thread

View File

@@ -403,6 +403,15 @@ SceneObjectsFactory::PrefabSyncData::PrefabSyncData(Array<SceneObject*>& sceneOb
{
}
void SceneObjectsFactory::PrefabSyncData::InitNewObjects()
{
for (int32 i = 0; i < NewObjects.Count(); i++)
{
SceneObject* obj = SceneObjects[InitialCount + i];
obj->Initialize();
}
}
void SceneObjectsFactory::SetupPrefabInstances(Context& context, const PrefabSyncData& data)
{
PROFILE_CPU_NAMED("SetupPrefabInstances");

View File

@@ -78,6 +78,7 @@ public:
ISerializeModifier* Modifier;
PrefabSyncData(Array<SceneObject*>& sceneObjects, const ISerializable::DeserializeStream& data, ISerializeModifier* modifier);
void InitNewObjects();
private:
struct NewObj