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-01-24 16:21: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
|
|
|
|
}
|