public static void GenerateTypeTree(TypeTreeContext context, string name) { PrefabInstanceLayout layout = context.Layout.PrefabInstance; context.AddNode(layout.Name, name, layout.Version); context.BeginChildren(); if (layout.IsModificationFormat) { ObjectLayout.GenerateTypeTree(context); if (layout.HasRootGameObject && layout.IsRootGameObjectFirst) { context.AddPPtr(context.Layout.GameObject.Name, layout.RootGameObjectName); } PrefabModificationLayout.GenerateTypeTree(context, layout.ModificationName); if (layout.HasSourcePrefab) { context.AddPPtr(layout.Name, layout.SourcePrefabName); } else { context.AddPPtr(layout.Name, layout.ParentPrefabName); } if (!layout.IsRootGameObjectFirst) { context.AddPPtr(context.Layout.GameObject.Name, layout.RootGameObjectName); } if (layout.HasIsPrefabAsset) { context.AddBool(layout.IsPrefabAssetName); } else { context.AddBool(layout.IsPrefabParentName); } if (layout.HasIsExploded) { context.AddBool(layout.IsExplodedName); } context.Align(); } else { GUIDLayout.GenerateTypeTree(context, layout.LastMergeIdentifierName); if (layout.HasLastTemplateIdentifier) { GUIDLayout.GenerateTypeTree(context, layout.LastTemplateIdentifierName); } context.AddArray(layout.ObjectsName, (c, n) => c.AddPPtr(c.Layout.EditorExtension.Name, n)); context.AddPPtr(layout.Name, layout.FatherName); context.AddBool(layout.IsDataTemplateName, TransferMetaFlags.AlignBytesFlag); NamedObjectLayout.GenerateTypeTree(context); } context.EndChildren(); }
public MiscLayoutCategory(LayoutInfo info) { GUID = new GUIDLayout(info); KeyframeTpl = new KeyframeTplLayout(info); }