예제 #1
0
        public override void Read(AssetReader reader)
        {
            base.Read(reader);

            if (IsReadPreloadTable(reader.Version))
            {
                m_preloadTable = reader.ReadArray <PPtr <Object> >();
            }

            m_container = reader.ReadStringKVPArray <AssetBundles.AssetInfo>();
            MainAsset.Read(reader);

            if (IsReadScriptCampatibility(reader.Version))
            {
                m_scriptCampatibility = reader.ReadArray <AssetBundleScriptInfo>();
            }
            if (IsReadClassCampatibility(reader.Version))
            {
                m_classCampatibility = reader.ReadInt32KVPUInt32Array();
            }

            if (IsReadClassVersionMap(reader.Version))
            {
                m_classVersionMap = new Dictionary <int, int>();
                m_classVersionMap.Read(reader);
            }

            if (IsReadRuntimeCompatibility(reader.Version))
            {
                RuntimeCompatibility = reader.ReadUInt32();
            }

            if (IsReadAssetBundleName(reader.Version))
            {
                AssetBundleName = reader.ReadString();
                m_dependencies  = reader.ReadStringArray();
            }
            if (IsReadIsStreamedSceneAssetBundle(reader.Version))
            {
                IsStreamedSceneAssetBundle = reader.ReadBoolean();
                reader.AlignStream(AlignType.Align4);
            }
            if (IsReadExplicitDataLayout(reader.Version))
            {
                ExplicitDataLayout = reader.ReadInt32();
            }
            if (IsReadPathFlags(reader.Version))
            {
                PathFlags = reader.ReadInt32();
            }

            if (IsReadSceneHashes(reader.Version))
            {
                m_sceneHashes = new Dictionary <string, string>();
                m_sceneHashes.Read(reader);
            }
        }