123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- using System.Collections;
- using Cysharp.Threading.Tasks;
- using ET;
- using YooAsset;
- public class FsmDownloadWebFiles : IFsmNode
- {
- public string Name { private set; get; } = nameof(FsmDownloadWebFiles);
- void IFsmNode.OnEnter()
- {
- PatchEventDispatcher.SendPatchStepsChangeMsg(EPatchStates.DownloadWebFiles);
- BeginDownload().Forget();
- }
- void IFsmNode.OnUpdate()
- {
- }
- void IFsmNode.OnExit()
- {
- }
- private async UniTaskVoid BeginDownload()
- {
- var downloader = PatchUpdater.Downloader;
- UniTaskCompletionSource uniTaskCompletionSource = new UniTaskCompletionSource();
- // 注册下载回调
- downloader.OnDownloadErrorCallback = PatchEventDispatcher.SendWebFileDownloadFailedMsg;
- downloader.OnDownloadProgressCallback = PatchEventDispatcher.SendDownloadProgressUpdateMsg;
- downloader.BeginDownload();
-
- downloader.Completed += _ => { uniTaskCompletionSource.TrySetResult(); };
-
- await uniTaskCompletionSource.Task;
- // 检测下载结果
- if (downloader.Status != EOperationStatus.Succeed)
- return;
- FsmManager.Transition(nameof(FsmPatchDone));
- }
- }
|