Fix object ids remapping inside nested prefabs

#3255
This commit is contained in:
Wojtek Figat
2025-09-02 21:41:36 +02:00
parent 8fdda1a71a
commit 1042ad4e7d
6 changed files with 313 additions and 22 deletions

View File

@@ -13,6 +13,13 @@
class FLAXENGINE_API SceneObjectsFactory
{
public:
struct NestedPrefabInstance
{
Prefab* Prefab;
Guid RootObjectId;
Dictionary<Guid, Guid> IdsMapping;
};
struct PrefabInstance
{
int32 StatIndex;
@@ -21,6 +28,8 @@ public:
Prefab* Prefab;
bool FixRootParent = false;
Dictionary<Guid, Guid> IdsMapping;
Array<NestedPrefabInstance> Nested;
Dictionary<Guid, int32> ObjectToNested;
};
struct Context
@@ -133,5 +142,5 @@ public:
private:
static void SynchronizeNewPrefabInstances(Context& context, PrefabSyncData& data, Prefab* prefab, Actor* actor, const Guid& actorPrefabObjectId, int32 i, const ISerializable::DeserializeStream& stream);
static void SynchronizeNewPrefabInstance(Context& context, PrefabSyncData& data, Prefab* prefab, Actor* actor, const Guid& prefabObjectId);
static void SynchronizeNewPrefabInstance(Context& context, PrefabSyncData& data, Prefab* prefab, Actor* actor, const Guid& prefabObjectId, const Guid& nestedInstanceId);
};