public override IEnumerable <PPtr <Object> > FetchDependencies(DependencyContext context) { foreach (PPtr <Object> asset in base.FetchDependencies(context)) { yield return(asset); } #if UNIVERSAL EditorExtensionLayout layout = context.Layout.EditorExtension; if (layout.HasExtensionPtr) { yield return(context.FetchDependency(ExtensionPtr, layout.ExtensionPtrName)); } if (layout.HasCorrespondingSourceObject) { yield return(context.FetchDependency(CorrespondingSourceObject, layout.CorrespondingSourceObjectInvariantName)); yield return(context.FetchDependency(PrefabInstance, layout.PrefabInstanceInvariantName)); } if (layout.HasPrefabAsset) { yield return(context.FetchDependency(PrefabAsset, layout.PrefabAssetName)); } #endif }
public static void Convert(IExportContainer container, EditorExtension origin, EditorExtension instance) { EditorExtensionLayout layout = container.Layout.EditorExtension; EditorExtensionLayout exlayout = container.ExportLayout.EditorExtension; ObjectConverter.Convert(container, origin, instance); #if UNIVERSAL if (exlayout.HasCorrespondingSourceObjectInvariant) { if (layout.HasCorrespondingSourceObjectInvariant) { instance.CorrespondingSourceObject = origin.CorrespondingSourceObject; instance.PrefabInstance = origin.PrefabInstance; } else { #warning TODO: get values from ExtensionPtr } } else { instance.ExtensionPtr = origin.ExtensionPtr; } if (exlayout.HasPrefabAsset && layout.HasPrefabAsset) { instance.PrefabAsset = origin.PrefabAsset; } #endif }
protected override YAMLMappingNode ExportYAMLRoot(IExportContainer container) { YAMLMappingNode node = base.ExportYAMLRoot(container); EditorExtensionLayout layout = container.ExportLayout.EditorExtension; if (layout.HasExtensionPtr) { node.Add(layout.ExtensionPtrName, ExtensionPtr.ExportYAML(container)); } if (layout.HasCorrespondingSourceObject) { node.Add(layout.CorrespondingSourceObjectInvariantName, CorrespondingSourceObject.ExportYAML(container)); node.Add(layout.PrefabInstanceInvariantName, GetPrefabInstance(container).ExportYAML(container)); } if (layout.HasPrefabAsset) { node.Add(layout.PrefabAssetName, PrefabAsset.ExportYAML(container)); } return(node); }
public override void Write(AssetWriter writer) { base.Write(writer); #if UNIVERSAL EditorExtensionLayout layout = writer.Layout.EditorExtension; if (layout.HasExtensionPtr) { ExtensionPtr.Write(writer); } if (layout.HasCorrespondingSourceObject) { CorrespondingSourceObject.Write(writer); PrefabInstance.Write(writer); } if (layout.HasPrefabAsset) { PrefabAsset.Write(writer); } #endif }
public override void Read(AssetReader reader) { base.Read(reader); #if UNIVERSAL EditorExtensionLayout layout = reader.Layout.EditorExtension; if (layout.HasExtensionPtr) { ExtensionPtr = reader.ReadAsset <PPtr <Object> >(); } if (layout.HasCorrespondingSourceObject) { CorrespondingSourceObject.Read(reader); PrefabInstance.Read(reader); } if (layout.HasPrefabAsset) { PrefabAsset.Read(reader); } #endif }