using System.Collections; using Cysharp.Threading.Tasks; using AlicizaX.Resource.Runtime; using AlicizaX.Fsm.Runtime; using AlicizaX.Procedure.Runtime; using AlicizaX.Runtime; using UnityEngine; using YooAsset; namespace Unity.Startup.Procedure { internal sealed class ProcedureUpdateStaticVersion : ProcedureBase { protected override void OnEnter(IFsm procedureOwner) { base.OnEnter(procedureOwner); GameApp.Event.Fire(this, AssetPatchStatesChangeEventArgs.Create(EPatchStates.UpdateStaticVersion)); GetStaticVersion(procedureOwner).Forget(); } private async UniTaskVoid GetStaticVersion(IFsm procedureOwner) { var buildInOperation = GameApp.Resource.RequestPackageVersionAsync(); var a = Progress.Create((x) => { }); await buildInOperation.ToUniTask(); if (buildInOperation.Status == EOperationStatus.Succeed) { //更新成功 string packageVersion = buildInOperation.PackageVersion; GameApp.Resource.PackageVersion = packageVersion; Log.Debug($"Updated package Version : {packageVersion}"); ChangeState(procedureOwner); } else { //更新失败 Log.Error(buildInOperation.Error); ChangeState(procedureOwner); } } } }