Beispiel #1
0
        public SerializedType Parse(EndianBinaryReader varStream, bool varEnableTypeTree, SerializedFileFormatVersion varFormat, bool varRefType = false)
        {
            classID         = (PersistentTypeID)varStream.ReadInt32();
            IsStrippedType  = varStream.ReadBoolean();
            ScriptTypeIndex = varStream.ReadInt16();

            if (classID == PersistentTypeID.MonoBehaviour)
            {
                m_ScriptID = varStream.ReadBytes(16);
            }
            m_OldTypeHash = varStream.ReadBytes(16);

            if (varEnableTypeTree)
            {
                mTypeTree = new TypeTree().Parse(varStream, varFormat);

                if (varFormat >= SerializedFileFormatVersion.kStoresTypeDependencies)
                {
                    if (varRefType)
                    {
                        m_KlassName = varStream.ReadStringToNull();
                        m_NameSpace = varStream.ReadStringToNull();
                        m_AsmName   = varStream.ReadStringToNull();
                    }
                    else
                    {
                        m_TypeDependencies = varStream.ReadInt32Array();
                    }
                }
            }
            return(this);
        }