예제 #1
0
        private SerializedType ReadSerializedType()
        {
            var type = new SerializedType();

            type.classID = reader.ReadInt32();

            if (header.m_Version >= 16)
            {
                type.m_IsStrippedType = reader.ReadBoolean();
            }

            if (header.m_Version >= 17)
            {
                type.m_ScriptTypeIndex = reader.ReadInt16();
            }

            if (header.m_Version >= 13)
            {
                if ((header.m_Version < 16 && type.classID < 0) || (header.m_Version >= 16 && type.classID == 114))
                {
                    type.m_ScriptID = reader.ReadBytes(16); //Hash128
                }
                type.m_OldTypeHash = reader.ReadBytes(16);  //Hash128
            }

            if (m_EnableTypeTree)
            {
                var typeTree = new List <TypeTreeNode>();
                if (header.m_Version >= 12 || header.m_Version == 10)
                {
                    TypeTreeBlobRead(typeTree);
                }
                else
                {
                    ReadTypeTree(typeTree);
                }

                if (header.m_Version >= 21)
                {
                    type.m_TypeDependencies = reader.ReadInt32Array();
                }

                type.m_Nodes = typeTree;
            }

            return(type);
        }