// using System; // using Cysharp.Threading.Tasks; // using UnityEngine; // using UnityEngine.Assertions; // using YooAsset; // // namespace Stary.Evo // { // public class ArtResUpdateLocalState : AbstractFSMIStateAsync // { // public ArtResUpdateLocalState(IFsmSystemAsync system) : base(system) // { // } // // // public override async UniTask OnEnterAsync() // { // //初始化读取资源配置表 // var package = YooAssets.GetPackage(AppConfig.PackageDomainName); // // // //更新失败 // // Debug.Log($"UnityEvo:切换为加载本地缓存资源..."); // string packageVersion = ""; // // if (package.PackageName.Equals("Main")) // // { // // var operation = package.RequestPackageVersionAsync(); // // await operation; // // if (operation.Status == EOperationStatus.Succeed) // // { // // //更新成功 // // packageVersion = operation.PackageVersion; // // Debug.Log($"Unity:【Main】Request package Version : {packageVersion}"); // // } // // else // // { // // //更新失败 // // Debug.LogError("Unity:【Main】" + operation.Error); // // } // // } // //else // { // // 获取上次成功记录的版本 // packageVersion = PlayerPrefs.GetString($"{AppConfig.PackageDomainName}_GAME_VERSION", string.Empty); // if (string.IsNullOrEmpty(packageVersion)) // { // Debug.Log($"UnityEvo:没有找到本地版本记录,需要更新资源!"); // return; // } // } // // // Debug.Log($"UnityEvo:获取资源版本 Version : 【{packageVersion}】"); // Debug.Log($"UnityEvo:开始加载本地资源..."); // // Assert.AreEqual(EOperationStatus.Succeed, requetVersionOp.Status); // // // // 加载本地缓存的资源清单文件 // var updateManifestOp = package.UpdatePackageManifestAsync(packageVersion); // await updateManifestOp; // if (updateManifestOp.Status == EOperationStatus.Succeed) // { // //更新成功 // Debug.Log($"UnityEvo:更新本地资源清单 updateManifest : 【成功】"); // } // else // { // //更新失败 // Debug.LogError($"UnityEvo:加载本地资源清单文件失败,需要更新资源!: 【{updateManifestOp.Error}】"); // return; // } // // Assert.AreEqual(EOperationStatus.Succeed, updateManifestOp.Status); // // // //4.检测补丁包 // await Download(); // // // //加载热更配置文件 // var loadArtSceneDataOp = package.LoadAssetAsync("Config_ArtSceneData"); // await loadArtSceneDataOp; // ArtSceneData artSceneData = null; // if (loadArtSceneDataOp.Status == EOperationStatus.Succeed) // { // //更新成功 // Debug.Log($"UnityEvo:加载热更配置文件 ArtSceneData : 【成功】"); // artSceneData = loadArtSceneDataOp.AssetObject as ArtSceneData; // } // else // { // Debug.LogError($"UnityEvo:加载热更配置文件 ArtSceneData : 【失败】"); // } // // // if (artSceneData == null) // { // Debug.LogError($"UnityEvo:【{package.PackageName}】加载ArtSceneData为空,无法继续执行后续流程,请检查!!!"); // } // // } // // public override UniTask OnEnterAsync(T param) // { // return UniTask.CompletedTask; // } // // public override UniTask OnEnterAsync(T1 param1, T2 param2) // { // return UniTask.CompletedTask; // } // // public override void OnUpdate() // { // base.OnUpdate(); // } // // // public override async UniTask OnExitAsync() // { // await ((FsmLoadSystem)FsmSystem).ForceUnloadAllAssets(AppConfig.PackageDomainName); // AppConfig.PackageDomainName = ""; // } // // #region 下载热更资源 // // public async UniTask Download() // { // int downloadingMaxNum = 1; // int failedTryAgain = 1; // var package = YooAssets.GetPackage(AppConfig.PackageDomainName); // var downloader = package.CreateResourceDownloader(downloadingMaxNum, failedTryAgain); // // // 在正常开始游戏之前,还需要验证本地清单内容的完整性。 // if (downloader.TotalDownloadCount > 0) // { // Debug.Log("UnityEvo:资源内容本地并不完整,需要更新资源!"); // return; // } // } // // #endregion // // // } // }