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
        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;
        }
Esempio n. 3
0
        //下载版本描述
        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();
                }
            }
        }
Esempio n. 4
0
        //下载资源文件
        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();
                }
            }
        }