AlicizaX/Client/Assets/Scripts/Startup/Framework/Procedure/PatchUpdater/ProcedureDownloadWebFiles.cs

51 lines
1.7 KiB
C#
Raw Normal View History

2025-01-23 19:06:48 +08:00
using System.Collections;
using Cysharp.Threading.Tasks;
using AlicizaX.Resource.Runtime;
2025-04-28 19:45:45 +08:00
using AlicizaX;
2025-01-23 19:06:48 +08:00
using UnityEngine;
using YooAsset;
namespace Unity.Startup.Procedure
{
2025-04-28 19:45:45 +08:00
internal sealed class ProcedureDownloadWebFiles : StateBase<UpdateProcedureState>
2025-01-23 19:06:48 +08:00
{
2025-04-28 19:45:45 +08:00
protected override void OnEnter()
2025-01-23 19:06:48 +08:00
{
2025-07-11 21:00:00 +08:00
// GameApp.Event.Fire(this, AssetPatchStatesChangeEventArgs.Create(EPatchStates.DownloadWebFiles));
2025-04-28 19:45:45 +08:00
BeginDownload().Forget();
2025-01-23 19:06:48 +08:00
}
2025-04-28 19:45:45 +08:00
private async UniTaskVoid BeginDownload()
2025-01-23 19:06:48 +08:00
{
2025-04-28 19:45:45 +08:00
var downloader = StartupSetting.Downloader;
2025-01-23 19:06:48 +08:00
// 注册下载回调
2025-02-06 17:59:35 +08:00
void DownloaderOnDownloadErrorCallback(DownloadErrorData data)
2025-01-23 19:06:48 +08:00
{
2025-04-28 19:45:45 +08:00
Log.Error($"PackagegName:{data.PackageName} FileName:{data.FileName} Error:{data.ErrorInfo}");
SwitchState(UpdateProcedureState.ProcedureCreateDownloader);
2025-01-23 19:06:48 +08:00
}
2025-02-06 17:59:35 +08:00
downloader.DownloadErrorCallback = DownloaderOnDownloadErrorCallback;
downloader.DownloadUpdateCallback = OnDownloadProgressCallback;
2025-01-23 19:06:48 +08:00
downloader.BeginDownload();
await downloader;
// 检测下载结果
if (downloader.Status != EOperationStatus.Succeed)
{
2025-01-26 20:55:39 +08:00
Log.Error("资源更新失败!");
2025-01-23 19:06:48 +08:00
return;
}
2025-04-28 19:45:45 +08:00
SwitchState(UpdateProcedureState.ProcedurePatchDone);
2025-01-23 19:06:48 +08:00
}
2025-02-06 17:59:35 +08:00
private void OnDownloadProgressCallback(DownloadUpdateData data)
2025-01-23 19:06:48 +08:00
{
2025-02-06 17:59:35 +08:00
GameApp.Event.Fire(this, AssetDownloadProgressUpdateEventArgs.Create(data.PackageName, data.TotalDownloadCount, data.CurrentDownloadCount, data.TotalDownloadBytes, data.CurrentDownloadBytes));
2025-01-23 19:06:48 +08:00
}
}
2025-01-24 16:21:00 +08:00
}