Пример #1
0
        public static void GenerateTypeTree(TypeTreeContext context)
        {
            GameObjectLayout layout = context.Layout.GameObject;

            context.AddNode(layout.Name, TypeTreeUtils.BaseName);
            context.BeginChildren();
            ObjectLayout.GenerateTypeTree(context);
            if (layout.IsComponentTuple)
            {
                context.AddArray(layout.ComponentName, TupleLayout.GenerateTypeTree, Int32Layout.GenerateTypeTree,
                                 (c, n) => c.AddPPtr(c.Layout.Component.Name, n));
            }
            else
            {
                context.AddArray(layout.ComponentName, ComponentPairLayout.GenerateTypeTree);
            }
            if (layout.IsActiveFirst)
            {
                context.AddBool(layout.IsActiveName);
            }
            context.AddUInt32(layout.LayerName);
            if (layout.IsNameFirst)
            {
                context.AddString(layout.NameName);
            }
            if (layout.HasTag)
            {
                context.AddUInt16(layout.TagName);
            }
            if (layout.HasTagString)
            {
                context.AddString(layout.TagStringName);
            }
            if (layout.HasIcon && layout.IsIconFirst)
            {
                context.AddPPtr(context.Layout.Texture2D.Name, layout.IconName);
            }
            if (layout.HasNavMeshLayer)
            {
                context.AddUInt32(layout.NavMeshLayerName);
                context.AddUInt32(layout.StaticEditorFlagsName);
            }
            if (!layout.IsNameFirst)
            {
                context.AddString(layout.NameName);
            }
            if (!layout.IsActiveFirst)
            {
                context.AddBool(layout.IsActiveName);
            }
            if (layout.HasIsStatic)
            {
                context.AddBool(layout.IsStaticName);
            }
            if (layout.HasIcon && !layout.IsIconFirst)
            {
                context.AddPPtr(context.Layout.Texture2D.Name, layout.IconName);
            }
            context.EndChildren();
        }
Пример #2
0
        public static void GenerateTypeTree(TypeTreeContext context)
        {
            PrefabLayout layout = context.Layout.Prefab;

            context.AddNode(layout.Name, TypeTreeUtils.BaseName);
            context.BeginChildren();
            ObjectLayout.GenerateTypeTree(context);
            context.AddPPtr(context.Layout.GameObject.Name, layout.RootGameObjectName);
            context.EndChildren();
        }
Пример #3
0
        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();
        }
Пример #4
0
        public static void GenerateTypeTree(TypeTreeContext context)
        {
            ObjectLayout.GenerateTypeTree(context);
            EditorExtensionLayout layout = context.Layout.EditorExtension;

            if (layout.HasExtensionPtr)
            {
                context.AddPPtr(context.Layout.Object.Name, layout.ExtensionPtrName);
            }
            if (layout.HasCorrespondingSourceObject)
            {
                context.AddPPtr(layout.Name, layout.CorrespondingSourceObjectInvariantName);
                context.AddPPtr(context.Layout.PrefabInstance.Name, layout.PrefabInstanceInvariantName);
            }
            if (layout.HasPrefabAsset)
            {
                context.AddPPtr(context.Layout.Prefab.Name, layout.PrefabAssetName);
            }
        }