/// <summary> /// 重置. /// </summary> public override void Reset() { ThreadMaxCount = 3; NetRetries = 3; NetTimeOut = 30; DownloadWay = TDownloadWay.Http; SkipDownload = false; AssetBundlesBackUp = false; if (null != UploadServer) { UploadServer.Reset(); } if (null != DownloadServer) { DownloadServer.Reset(); } if (null != ProgressTips) { ProgressTips.Reset(); } if (null != ServersDirs) { ServersDirs.Clear(); } }
/// <summary> /// 创建下载器(Url). /// </summary> /// <returns>The downloader by URL.</returns> /// <param name="iDownloadUrl">下载Url.</param> /// <param name="iOnStart">开始事件委托.</param> /// <param name="iOnSuccessed">成功事件委托.</param> /// <param name="iOnFailed">失败事件委托.</param> /// <param name="iType">下载对象类型.</param> public static DownloaderBase CreateDownloaderByUrl(string iUrl, OnStart iOnStart, OnSuccessedByUrl iOnSuccessed, OnFailedByUrl iOnFailed, TargetType iType) { DownloaderBase downloader = null; TDownloadWay downloadWay = ServersConf.GetInstance().DownloadWay; switch (downloadWay) { case TDownloadWay.WWW: { downloader = WWWDownloader.Create( iUrl, iOnStart, iOnSuccessed, iOnFailed, iType); } break; case TDownloadWay.None: case TDownloadWay.Http: default: { downloader = HttpDownloader.Create( iUrl, iOnStart, iOnSuccessed, iOnFailed, iType); } break; } return(downloader); }
/// <summary> /// 创建下载器. /// </summary> /// <returns>下载器.</returns> /// <param name="iTarget">目标信息.</param> private DownloaderBase CreateDownloader(DownloadTargetInfo iTarget) { DownloaderBase downloader = null; TDownloadWay downloadWay = ServersConf.GetInstance().DownloadWay; switch (downloadWay) { case TDownloadWay.WWW: { downloader = WWWDownloader.Create( iTarget, OnStartDownload, OnDownloadSuccessed, OnDownloadFail); } break; case TDownloadWay.None: case TDownloadWay.Http: default: { downloader = HttpDownloader.Create( iTarget, OnStartDownload, OnDownloadSuccessed, OnDownloadFail); } break; } return(downloader); }
/// <summary> /// 开始下载. /// </summary> private IEnumerator DownloadFiles() { TDownloadWay downloadWay = ServersConf.GetInstance().DownloadWay; while (this.DownloadQueue.Count > 0) { // 下载器个数控制 if (this.DownloaderCount >= this.DownloaderMaxCount) { yield return(new WaitForSeconds(1.0f)); } // 下载出错则停止 if (TRunState.OK != this._State) { this.Error("DownloadFiles()::Download Failed!!! State:{0}", this._State.ToString()); // 取消现有下载线程 isCanceled = true; yield break; } DownloaderBase downloader = this.DownloadQueue.Dequeue(); if (downloader == null) { continue; } // Bundle文件 if (TDownloadWay.WWW == downloadWay) { yield return(downloader.AsynDownLoadTarget()); } else { downloader.ThreadDownLoadTarget(); } yield return(new WaitForEndOfFrame()); // 下载出错则停止 if (TRunState.OK != this._State) { this.Error("DownloadFiles()::Download Failed!!! State:{0}", this._State.ToString()); // 取消现有下载线程 isCanceled = true; yield break; } } }