Ejemplo n.º 1
0
        private static IHierarchyElement ReadHieraerchyElement(UnsafeReader reader)
        {
            switch (reader.ReadInt32())
            {
            case 0:
                return(GameObjectHierarchy.Read(reader));

            case 1:
                return(ComponentHierarchy.Read(reader));

            case 2:
                return(PrefabInstanceHierarchy.Read(reader));

            case 3:
                return(ScriptComponentHierarchy.Read(reader));

            case 4:
                return(StrippedHierarchyElement.Read(reader));

            case 5:
                return(TransformHierarchy.Read(reader));

            default:
                throw new InvalidOperationException("Unknown type");
            }
        }
Ejemplo n.º 2
0
        private static void WriteHierarchyElement(UnsafeWriter writer, IHierarchyElement hierarchyElement)
        {
            switch (hierarchyElement)
            {
            case GameObjectHierarchy gameObjectHierarchy:
                writer.Write(0);
                GameObjectHierarchy.Write(writer, gameObjectHierarchy);
                break;

            case ComponentHierarchy componentHierarchy:
                writer.Write(1);
                ComponentHierarchy.Write(writer, componentHierarchy);
                break;

            case PrefabInstanceHierarchy prefabInstanceHierarchy:
                writer.Write(2);
                PrefabInstanceHierarchy.Write(writer, prefabInstanceHierarchy);
                break;

            case ScriptComponentHierarchy scriptComponentHierarchy:
                writer.Write(3);
                ScriptComponentHierarchy.Write(writer, scriptComponentHierarchy);
                break;

            case StrippedHierarchyElement strippedHierarchyElement:
                writer.Write(4);
                StrippedHierarchyElement.Write(writer, strippedHierarchyElement);
                break;

            case TransformHierarchy transformHierarchy:
                writer.Write(5);
                TransformHierarchy.Write(writer, transformHierarchy);

                break;
            }
        }