using Cysharp.Threading.Tasks; using SHFrame; using SHFrame.FSM; using YooAsset; namespace HotMain.SHGame.Procedure { /// /// 更新资源版本号 /// public class ProcedureUpdatePackageVersion : ProcedureBase { protected override void OnEnter(IFsm procedureOwner) { base.OnEnter(procedureOwner); UpdatePackages(procedureOwner).Forget(); } private async UniTask UpdatePackages(IFsm procedureOwner) { bool result = await UpdatePackageVersion(ProcedureInitializePackage.RawFilePackageName); if (!result) return; result = await UpdatePackageVersion(ProcedureInitializePackage.DefaultPackageName); if (!result) return; //切换到更新资源版本 ChangeState(procedureOwner); } private async UniTask UpdatePackageVersion(string packageName) { ResourcePackage package = YooAssets.GetPackage(packageName); //2.获取资源版本 UpdatePackageVersionOperation updateVerOperation = package.UpdatePackageVersionAsync(false); await updateVerOperation.ToUniTask(); // TODO 如果初始化失败弹出提示界面 if (updateVerOperation.Status != EOperationStatus.Succeed) { Log.Error($"{package.PackageName} 获取远程资源版本信息失败: {updateVerOperation.Error}"); return false; } return true; } } }