private async void DownloadResListAsync() { BeginHandle?.Invoke(this); while (true) { if (mBeDownloadResKey.Count == 0) { break; } uint tmpKey = mBeDownloadResKey.Dequeue(); long tmpResFlag = 0; if (!mResInfoDict.TryGetValue(tmpKey, out tmpResFlag)) { Logger.LogError(""); break; } var tmpResInfo = ResourcesSystem.ResFlag2Info(tmpResFlag); while (true) { try { using (UnityWebRequestAsync webReqAsync = Game.ObjectPool.Fetch <UnityWebRequestAsync>()) { WebRequestAsync = webReqAsync; string tmpUrl = URL + tmpResInfo.FileHashStr; bool tmpResult = await webReqAsync.DownloadAsync(tmpUrl); if (tmpResult) { Save(webReqAsync.Request.downloadHandler.data, tmpResInfo.FileHashStr); } else { Failed(); } } } catch (Exception e) { Logger.LogError($"download res error! {tmpResInfo.FileHashStr} -> {e}"); continue; } break; } mDownloadedSize += tmpResInfo.ResSize; DownloadProgressHandle?.Invoke(this); WebRequestAsync = null; tmpResInfo.Dispose(); } Finish(); }
public virtual void Reset() { mServerVersionData = null; mLocalVersionData = null; mApkVersionData = null; mBeginHandle = null; mFailHandle = null; mFinishHandle = null; if (null != mWebRequestAsync) { mWebRequestAsync.Dispose(); mWebRequestAsync = null; } mTotalSize = 1; }
//下载版本描述 protected virtual async void DownloadVersionFileAsync() { using (UnityWebRequestAsync webRequestAsync = Game.ObjectPool.Fetch <UnityWebRequestAsync>()) { mWebRequestAsync = webRequestAsync; string tmpUrl = mUrl + VersionFile; bool tmpResult = await webRequestAsync.DownloadAsync(tmpUrl); mWebRequestAsync = null; if (tmpResult) { LoadVersionFile(webRequestAsync.Request.downloadHandler.data); } else { Failed(); } } }
//下载资源文件 protected virtual async void DownloadDescribeFileAsync() { using (UnityWebRequestAsync webRequestAsync = Game.ObjectPool.Fetch <UnityWebRequestAsync>()) { mWebRequestAsync = webRequestAsync; string tmpUrl = mUrl + mServerVersionData.ResDescCrc; bool tmpResult = await webRequestAsync.DownloadAsync(tmpUrl); mWebRequestAsync = null; if (tmpResult) { Save(webRequestAsync.Request.downloadHandler.data, mServerVersionData.ResDescCrc.ToString()); LoadDescribe(webRequestAsync.Request.downloadHandler.data, EPosType.Server); } else { Failed(); } } }