Exemplo n.º 1
0
        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));
        }