コード例 #1
0
ファイル: LoadManager.cs プロジェクト: xqy/game
 /// <summary>
 /// 加载资源,如果资源已经加载过,则直接从缓存中获取
 /// </summary>
 /// <param name="loadInfo">加载资源的相关信息</param>
 public void addLoad(LoadInfo loadInfo)
 {
     if (string.IsNullOrEmpty(loadInfo.fullName))
     {
         throw new Exception("LoadManager.instance.load()的fullName不能为空");
     }
     if (loadDic.ContainsKey(loadInfo.fullName))
     {
         LoadInfo info = loadDic[loadInfo.fullName];
         delegateAddition(info.loadStart, loadInfo.loadStart);
         delegateAddition(info.loadProgress, loadInfo.loadProgress);
         delegateAddition(info.loadEnd, loadInfo.loadEnd);
         delegateAddition(info.loadFail, loadInfo.loadFail);
         delegateAddition(info.unZipStart, loadInfo.unZipStart);
         delegateAddition(info.unZipProgress, loadInfo.unZipProgress);
         delegateAddition(info.unZipEnd, loadInfo.unZipEnd);
         delegateAddition(info.unZipFail, loadInfo.unZipFail);
     }
     else
     {
         if (unZipList.containsKey(loadInfo.fullName))
         {
             LoadInfo info = unZipList.getValue(loadInfo.fullName);
             if (loadInfo.loadStart != null)
             {
                 loadInfo.loadStart(LoadData.getLoadData(loadInfo.fullName));
             }
             if (loadInfo.loadEnd != null)
             {
                 loadInfo.loadEnd(LoadData.getLoadData(loadInfo.fullName, 1, null, info.assetBundle));
             }
             if (loadInfo.unZipStart != null)
             {
                 loadInfo.unZipStart(LoadData.getLoadData(loadInfo.fullName, 1));
             }
             delegateAddition(info.unZipProgress, loadInfo.unZipProgress);
             delegateAddition(info.unZipEnd, loadInfo.unZipEnd);
             delegateAddition(info.unZipFail, loadInfo.unZipFail);
             return;
         }
         else
         {
             loadDic.Add(loadInfo.fullName, loadInfo);
         }
     }
     BundleLoadInfo newInfo = loadInfo.getBundleLoadInfo();
     newInfo.loadEnd = loadInfo.loadEnd + this.loadEnd;
     BundleLoadManager.instance.addLoad(newInfo);
 }