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(); }
protected override void DownloadDescribeFileAsync() { base.DownloadDescribeFileAsync(); BeginHandle?.Invoke(this); }