// using Cysharp.Threading.Tasks; // using UnityEngine; // using UnityEngine.Assertions; // using YooAsset; // // namespace Stary.Evo // { // public class ArtResEditorSimulateState : AbstractFSMIStateAsync // { // public ArtResEditorSimulateState(IFsmSystemAsync system) : base(system) // { // } // // public override async UniTask OnEnterAsync() // { // Debug.Log("UnityEvo:开始资源更新..."); // // // // //初始化读取资源配置表 // var package = YooAssets.GetPackage(AppConfig.PackageDomainName); // // 请求资源版本 // var requetVersionOp = package.RequestPackageVersionAsync(); // await requetVersionOp; // string packageVersion = ""; // if (requetVersionOp.Status == EOperationStatus.Succeed) // { // //更新成功 // packageVersion = requetVersionOp.PackageVersion; // PlayerPrefs.SetString($"{AppConfig.PackageDomainName}_GAME_VERSION", packageVersion); // Debug.Log($"UnityEvo:获取资源版本 Version : 【{packageVersion}】"); // Debug.Log($"UnityEvo:开始加载服务器资源..."); // } // else // { // Debug.LogError($"UnityEvo:获取资源版本失败: 【{requetVersionOp.Error}】"); // FsmSystem.SetCurState(nameof(ResUpdateLocalState)); // return; // } // // // 更新资源清单 // var updateManifestOp = package.UpdatePackageManifestAsync(packageVersion); // await updateManifestOp; // if (updateManifestOp.Status == EOperationStatus.Succeed) // { // //更新成功 // Debug.Log($"UnityEvo:更新资源清单 updateManifest : 【成功】"); // } // else // { // //更新失败 // Debug.LogError($"UnityEvo:更新资源清单失败: 【{updateManifestOp.Error}】"); // } // // //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 = 10; // int failedTryAgain = 3; // var package = YooAssets.GetPackage(AppConfig.PackageDomainName); // var downloader = package.CreateResourceDownloader(downloadingMaxNum, failedTryAgain); // // //没有需要下载的资源 // if (downloader.TotalDownloadCount == 0) // { // Debug.Log("UnityEvo:没有需要下载的资源,跳过更新"); // return; // } // // //需要下载的文件总数和总大小 // int totalDownloadCount = downloader.TotalDownloadCount; // long totalDownloadBytes = downloader.TotalDownloadBytes; // Debug.Log($"UnityEvo:需要下载的资源的个数【{totalDownloadCount}】,需要下载的资源的总大小{totalDownloadBytes / 1024} MB"); // //===================================适应新版本YooAsset插件的修改=================================== // //注册回调方法 // downloader.DownloadErrorCallback = OnDownloadErrorFunction; // downloader.DownloadUpdateCallback = OnDownloadProgressUpdateFunction; // downloader.DownloadFinishCallback = OnDownloadOverFunction; // downloader.DownloadFileBeginCallback = OnStartDownloadFileFunction; // //===================================适应新版本YooAsset插件的修改=================================== // // //开启下载 // downloader.BeginDownload(); // await downloader; // // //检测下载结果 // if (downloader.Status == EOperationStatus.Succeed) // { // //下载成功 // Debug.Log("UnityEvo:资源更新完成"); // } // else // { // //下载失败 // Debug.Log("UnityEvo:资源更新失败"); // } // } // // //===================================适应新版本YooAsset插件的修改=================================== // /// // /// 开始下载 // /// // private void OnStartDownloadFileFunction(DownloadFileData downloadFileData) // { // Debug.Log( // $"UnityEvo:开始下载:文件名:{downloadFileData.FileName},文件大小:{downloadFileData.FileSize / 1024f / 1024f} MB"); // } // // /// // /// 下载完成 // /// // private void OnDownloadOverFunction(DownloaderFinishData downloaderFinishData) // { // Debug.Log("UnityEvo:下载" + (downloaderFinishData.Succeed ? "成功" : "失败")); // } // // /// // /// 更新中 // /// // private void OnDownloadProgressUpdateFunction(DownloadUpdateData downloadUpdateData) // { // Debug.Log( // $"UnityEvo:文件总数:{downloadUpdateData.TotalDownloadCount},已下载文件数:{downloadUpdateData.CurrentDownloadCount},下载总大小:{downloadUpdateData.TotalDownloadBytes / 1024f / 1024f} MB,已下载大小{downloadUpdateData.CurrentDownloadBytes / 1024f / 1024f} MB"); // } // // /// // /// 下载出错 // /// // /// // private void OnDownloadErrorFunction(DownloadErrorData errorData) // { // Debug.Log($"UnityEvo:下载出错:包名:{errorData.PackageName} 文件名:{errorData.FileName},错误信息:{errorData.ErrorInfo}"); // } // //===================================适应新版本YooAsset插件的修改=================================== // // #endregion // } // }