Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        protected override void DownloadDescribeFileAsync()
        {
            base.DownloadDescribeFileAsync();

            BeginHandle?.Invoke(this);
        }