/// <summary> /// 初始化资源信息 /// </summary> /// <param name="buffer"></param> private void InitAssetInfo(byte[] buffer) { buffer = ZlibHelper.DeCompressBytes(buffer); MMO_MemoryStream ms = new MMO_MemoryStream(buffer); int len = ms.ReadInt(); int depLen = 0; for (int i = 0; i < len; i++) { AssetEntity entity = new AssetEntity(); entity.Category = (AssetCategory)ms.ReadByte(); entity.AssetFullName = ms.ReadUTF8String(); entity.AssetBundleName = ms.ReadUTF8String(); depLen = ms.ReadInt(); if (depLen > 0) { entity.DependsAssetList = new List <AssetDependsEntity>(depLen); for (int j = 0; j < depLen; j++) { AssetDependsEntity assetDepends = new AssetDependsEntity(); assetDepends.Category = (AssetCategory)ms.ReadByte(); assetDepends.AssetFullName = ms.ReadUTF8String(); entity.DependsAssetList.Add(assetDepends); } } m_AssetInfoDic[entity.Category][entity.AssetFullName] = entity; } }
/// <summary> /// 加载依赖资源 /// </summary> private void LoadDependsAsset() { List <AssetDependsEntity> lst = m_CurrAssetEntity.DependsAssetList; if (lst != null) { int len = lst.Count; m_NeedLoadAssetDependCount = len; for (int i = 0; i < len; i++) { AssetDependsEntity entity = lst[i]; MainAssetLoaderRoutine routine = GameEntry.Pool.DequeueClassObject <MainAssetLoaderRoutine>(); routine.Load(entity.Category, entity.AssetFullName, OnLoadDependsAssetComplete); } } else { //这个资源没有依赖 直接加载主资源 LoadMainAsset(); } }