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)); }); }
public static UnityObject GetObject(UnityObjectReference objectReference, SerializationMetadata metadata) { var guid = objectReference.guid; if (!string.IsNullOrEmpty(guid)) { return(GetAsset(guid, objectReference.fileId, metadata?.AssetPack)); } var sceneId = objectReference.sceneID; return(sceneId == SerializationMetadata.InvalidID ? null : metadata?.GetSceneObject(sceneId)); }