using AlicizaX.Resource.Runtime; using AlicizaX; using UnityEngine; using YooAsset; namespace Unity.Startup.Procedure { internal sealed class ProcedureCreateDownloader : StateBase { protected override void OnEnter() { // GameApp.Event.Fire(this, AssetPatchStatesChangeEventArgs.Create(EPatchStates.CreateDownloader)); CreateDownloader(); } void CreateDownloader() { ResourceDownloaderOperation downloader = ModuleSystem.GetModule().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); } } } }