AlicizaX/Client/Assets/Scripts/Startup/Framework/Procedure/PatchUpdater/ProcedureCreateDownloader.cs
2025-04-28 19:45:45 +08:00

43 lines
1.6 KiB
C#

using AlicizaX.Resource.Runtime;
using AlicizaX;
using UnityEngine;
using YooAsset;
namespace Unity.Startup.Procedure
{
internal sealed class ProcedureCreateDownloader : StateBase<UpdateProcedureState>
{
protected override void OnEnter()
{
GameApp.Event.Fire(this, AssetPatchStatesChangeEventArgs.Create(EPatchStates.CreateDownloader));
CreateDownloader();
}
void CreateDownloader()
{
ResourceDownloaderOperation downloader = ModuleSystem.GetModule<IResourceModule>().CreateResourceDownloader();
StartupSetting.Downloader = downloader;
if (downloader.TotalDownloadCount == 0)
{
Log.Info("没有发现需要下载的资源");
SwitchState(UpdateProcedureState.ProcedurePatchDone);
}
else
{
// 发现新更新文件后,挂起流程系统
int totalDownloadCount = downloader.TotalDownloadCount;
long totalDownloadBytes = downloader.TotalDownloadBytes;
float sizeMb = totalDownloadBytes / 1048576f;
sizeMb = Mathf.Clamp(sizeMb, 0.1f, float.MaxValue);
string totalSizeMb = sizeMb.ToString("f1");
Log.Info($"一共发现了{downloader.TotalDownloadCount}个资源需要更新下载,总共需要下载文件大小为:{totalSizeMb}!");
//这里进行确认 如果要下载在进行跳转到Download
SwitchState(UpdateProcedureState.ProcedureDownloadWebFiles);
}
}
}
}