/// <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); }