AlicizaX/Client/Assets/Scripts/Startup/Framework/Procedure/PatchUpdater/ProcedureUpdateStaticVersion.cs
陈思海 eb38f67131 init
2025-01-23 19:06:48 +08:00

46 lines
1.7 KiB
C#

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<IProcedureManager> procedureOwner)
{
base.OnEnter(procedureOwner);
GameApp.Event.Fire(this, AssetPatchStatesChangeEventArgs.Create(ResourceComponent.BuildInPackageName, EPatchStates.UpdateStaticVersion));
GetStaticVersion(procedureOwner).Forget();
}
private async UniTaskVoid GetStaticVersion(IFsm<IProcedureManager> procedureOwner)
{
var buildInOperation = GameApp.Resource.RequestPackageVersionAsync();
await buildInOperation.ToUniTask();
if (buildInOperation.Status == EOperationStatus.Succeed)
{
//更新成功
string packageVersion = buildInOperation.PackageVersion;
GameApp.Resource.PackageVersion = packageVersion;
Log.Debug($"Updated package Version : {packageVersion}");
ChangeState<ProcedureUpdateManifest>(procedureOwner);
}
else
{
//更新失败
Log.Error(buildInOperation.Error);
GameApp.Event.Fire(this, AssetStaticVersionUpdateFailedEventArgs.Create(ResourceComponent.BuildInPackageName, buildInOperation.Error));
ChangeState<ProcedureUpdateStaticVersion>(procedureOwner);
}
}
}
}