public void ConvertToUnityObjectOverride(List <RuntimePrefabPropertyOverride> list, int i, SerializationMetadata metadata) { var objectReference = m_Value; var guid = objectReference.guid; if (!string.IsNullOrEmpty(guid)) { list[i] = new RuntimePrefabOverrideUnityObject(PropertyPath, TransformPath, ComponentIndex, UnityObjectReference.GetAsset(guid, objectReference.fileId, metadata.AssetPack)); return; } list[i] = null; var sceneId = objectReference.sceneID; if (sceneId == SerializationMetadata.InvalidID) { return; } var index = i; metadata.EnqueuePostSerializationAction(() => { list[index] = new RuntimePrefabOverrideUnityObject(PropertyPath, TransformPath, ComponentIndex, metadata.GetSceneObject(sceneId)); }); }
internal void FinalizePrefab(PrefabMetadataContainer metadataContainer, SerializationMetadata metadata) { var removedComponents = metadataContainer.RemovedComponents; if (removedComponents != null) { HandleRemovedComponents(removedComponents); } if (Application.isPlaying) { m_GameObject.AddComponent <PrefabMetadata>().Setup(metadataContainer); } var overrides = metadataContainer.PropertyOverrides; if (overrides == null) { return; } metadata.EnqueuePostSerializationAction(() => { HandlePropertyOverrides(overrides, metadata); }); }