private void Update() { if (!IsWorking || m_NextUpdateState == HotFixUpdaterState.None || m_NextUpdateState == UpdaterState) { return; } UpdaterState = m_NextUpdateState; m_NextUpdateState = HotFixUpdaterState.None; switch (UpdaterState) { case HotFixUpdaterState.None: break; case HotFixUpdaterState.LoadLocalVersionFile: NotifyHotFixUpdateProgressChanged("校验版本信息", 20); StartLoadLocalVersionFile(); break; case HotFixUpdaterState.LoadLocalFileRecords: NotifyHotFixUpdateProgressChanged("校验版本信息", 40); StartLoadLocalRecordFile(); break; case HotFixUpdaterState.LoadRemoteVersionFile: NotifyHotFixUpdateProgressChanged("校验版本信息", 70); StartLoadRemoteVersionFile(); break; case HotFixUpdaterState.LoadRemoteFileRecords: NotifyHotFixUpdateProgressChanged("校验版本信息", 80); StartLoadRemoteRecordFile(); break; case HotFixUpdaterState.DownloadData: StartDownLoadRemoteUpdatedAssets(); break; case HotFixUpdaterState.ClearObsoleteAssets: StartClearObsoleteAssetOfDownload(); break; case HotFixUpdaterState.ValidateLocalData: StartValidateLocalAssetFiles(); break; case HotFixUpdaterState.Done: NotifyHotFixUpdateProgressChanged("校验版本信息", 100); HotfixUpdateComplated(); break; case HotFixUpdaterState.Failed: HotfixUpdateFaild(); break; default: break; } }
/// <summary> /// 尝试从远程服务器更新资源 /// </summary> /// <returns></returns> public void TryStartUpdateRemoteAssetsToLocal() { IsWorking = true; IsLoadedNewAsset = false; m_NextUpdateState = HotFixUpdaterState.None; UpdaterState = HotFixUpdaterState.None; m_LocalFileRecords.Clear(); m_RemoteFileRecords.Clear(); m_NeedUpdateFileRecords.Clear(); m_NeedDownCount = 0; m_RemoteVersion = m_LocalVersion = DEFAULT_VERSION; IsValidatedAssets = false; HotfixUpdaterSwitchToState(HotFixUpdaterState.LoadLocalVersionFile); }
/// <summary> /// 热更状态切换 /// </summary> /// <param name="state"></param> void HotfixUpdaterSwitchToState(HotFixUpdaterState state) { m_NextUpdateState = state; }