|  |  |  | 
|---|
|  |  |  | public bool isDone { get { return state == State.Completed; } } //是否全部下载完成 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //窗口中显示的已下载大小 | 
|---|
|  |  |  | public long showDownLoadedSize { get { return DownloadMgr.Instance.DownloadedBytes - backGroundDownLoadSizeRecord; } } | 
|---|
|  |  |  | public long showDownLoadedSize { get { return DownloadHotMgr.Instance.DownloadedBytes - backGroundDownLoadSizeRecord; } } | 
|---|
|  |  |  | public long showTotalSize { get { return totalSize - backGroundDownLoadSizeRecord; } }//窗口中显示的总大小 | 
|---|
|  |  |  | public int showTotalCount { get { return totalCount - downLoadedCountRecord; } }//窗口中显示的总数量 | 
|---|
|  |  |  | public int showOkCount { get { return okCount - downLoadedCountRecord; } }//窗口中显示的下载完成数量 | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void Awake() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | DownloadMgr.MaxDownLoadTask = GetMaxTask(); | 
|---|
|  |  |  | DownloadHotMgr.MaxDownLoadTask = GetMaxTask(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void LateUpdate() | 
|---|
|  |  |  | 
|---|
|  |  |  | okCount = 0; | 
|---|
|  |  |  | totalSize = 0; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | DownloadMgr.Instance.Prepare(); | 
|---|
|  |  |  | DownloadHotMgr.Instance.Prepare(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for (int i = 0; i < this.assets.Count; i++) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | 
|---|
|  |  |  | //添加下载任务 | 
|---|
|  |  |  | var remoteURL = StringUtility.Contact(VersionUtility.Instance.versionInfo.GetResourcesURL(VersionConfig.Get().branch), Language.fixPath, "/", assetVersion.relativePath); | 
|---|
|  |  |  | var localURL = StringUtility.Contact(ResourcesPath.Instance.ExternalStorePath, assetVersion.relativePath); | 
|---|
|  |  |  | DownloadMgr.Instance.AddTask(new DownloadTask(remoteURL, localURL, assetVersion)); | 
|---|
|  |  |  | DownloadHotMgr.Instance.AddTask(new DownloadHotTask(remoteURL, localURL, assetVersion)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | state = State.None; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // TODO YYL | 
|---|
|  |  |  | TaskManager.Event_MainlineTask -= OnMainTaskChange; | 
|---|
|  |  |  | TaskManager.Event_MainlineTask += OnMainTaskChange; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | PlayerDatas.Instance.playerDataRefreshEvent -= OnPlayerLevelChange; | 
|---|
|  |  |  | PlayerDatas.Instance.playerDataRefreshEvent += OnPlayerLevelChange; | 
|---|
|  |  |  | 
|---|
|  |  |  | case Dominant.Half: | 
|---|
|  |  |  | if (dominantState == Dominant.None) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | backGroundDownLoadSizeRecord = DownloadMgr.Instance.DownloadedBytes; | 
|---|
|  |  |  | backGroundDownLoadSizeRecord = DownloadHotMgr.Instance.DownloadedBytes; | 
|---|
|  |  |  | downLoadedCountRecord = okCount; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | StartDownLoad(); | 
|---|
|  |  |  | 
|---|
|  |  |  | case Dominant.Whole: | 
|---|
|  |  |  | if (dominantState == Dominant.None) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | backGroundDownLoadSizeRecord = DownloadMgr.Instance.DownloadedBytes; | 
|---|
|  |  |  | backGroundDownLoadSizeRecord = DownloadHotMgr.Instance.DownloadedBytes; | 
|---|
|  |  |  | downLoadedCountRecord = okCount; | 
|---|
|  |  |  | Pause(); | 
|---|
|  |  |  | state = State.Prepared; | 
|---|
|  |  |  | 
|---|
|  |  |  | state = State.Prepared; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | dominantState = Dominant.Whole; | 
|---|
|  |  |  | UIManager.Instance.OpenWindow<InGameDownLoadWin>(); | 
|---|
|  |  |  | // // WindowCenter.Instance.Open<InGameDownLoadWin>(); | 
|---|
|  |  |  | // UIManager.Instance.OpenWindow<InGameDownLoadWin>(); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | if (state == State.None || state == State.Prepared || state == State.Pause) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | state = State.DownLoad; | 
|---|
|  |  |  | DownloadMgr.Instance.Begin(OnFileDownLoadCompleted); | 
|---|
|  |  |  | DownloadHotMgr.Instance.Begin(OnFileDownLoadCompleted); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (state == State.DownLoad) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | DownloadMgr.Instance.Stop(); | 
|---|
|  |  |  | DownloadHotMgr.Instance.Stop(); | 
|---|
|  |  |  | state = State.Pause; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //文件下载完成回调 | 
|---|
|  |  |  | private bool OnFileDownLoadCompleted(bool finished, DownloadTask task) | 
|---|
|  |  |  | private bool OnFileDownLoadCompleted(bool finished, DownloadHotTask task) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (task.IsDone && task.obj is AssetVersion) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | 
|---|
|  |  |  | //所有任务完成 | 
|---|
|  |  |  | private void OnDownLoadFinished() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | //  TODO YYL | 
|---|
|  |  |  | TaskManager.Event_MainlineTask -= OnMainTaskChange; | 
|---|
|  |  |  | PlayerDatas.Instance.playerDataRefreshEvent -= OnPlayerLevelChange; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | UIManager.Instance.CloseWindow<InGameDownLoadWin>(); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //主线任务任务状态变更和刷新 | 
|---|
|  |  |  | private void OnMainTaskChange(int _taskId, int _state) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var mainTaskId = TaskManager.Instance.currentMission; | 
|---|
|  |  |  | if (GeneralDefine.inGameDownLoadTaskCheckPoints.Contains(mainTaskId) | 
|---|
|  |  |  | && TaskManager.Instance.currentMissionState == 1) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (CheckDominantDownLoad()) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | TryDownLoad(Dominant.Whole); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //获取最大下载任务数 | 
|---|
|  |  |  | public int GetMaxTask() | 
|---|