// using System; // using System.IO; // using Cysharp.Threading.Tasks; // using Main; // using Newtonsoft.Json; // using UnityEditor; // using UnityEngine; // using UnityEngine.Assertions; // using YooAsset; // using Object = UnityEngine.Object; // // namespace Stary.Evo // { // public class ArtResStartState : AbstractFSMIStateAsync // { // public ArtResStartState(IFsmSystemAsync system) : base(system) // { // } // // // public override async UniTask OnEnterAsync() // { // Debug.Log("UnityEvo:启动开始资源初始化..."); // // // //初始化读取资源配置表 // HotfixMainResDomain hotfixMainResDomain = Resources.Load("HotfixMainResDomain"); // if (hotfixMainResDomain != null) // { // AppConfig.IpConfig = hotfixMainResDomain.hotfixMainResDomainEntity.ipconfig; // AppConfig.UserName = hotfixMainResDomain.hotfixMainResDomainEntity.username; // AppConfig.PassWord = hotfixMainResDomain.hotfixMainResDomainEntity.password; // AppConfig.ProductName =Application.identifier; // AppConfig.MainDomainVersion = hotfixMainResDomain.hotfixMainResDomainEntity.mainDomainVersion; // } // // Debug.Log($"UnityEvo:读取资源配置表成功...{AppConfig.IpConfig}{AppConfig.UserName}{AppConfig.PassWord}"); // // 初始化资源系统 // YooAssets.Initialize(); // // // //自定义网络请求器 // // 设置自定义请求委托 // //YooAssets.SetDownloadSystemUnityWebRequest(NasWebRequester); // // // //初始化资源加载模块 // // 增加包存在性检查 // var package = YooAssets.TryGetPackage(AppConfig.PackageDomainName); // if (package == null) // { // Debug.LogWarning($"UnityEvo:资源包 {AppConfig.PackageDomainName} 不存在,正在尝试创建..."); // package = YooAssets.CreatePackage(AppConfig.PackageDomainName); // } // // YooAssets.SetDefaultPackage(package); // // // 初始化资源包 // #if EDITOR_SIMULATEMODE // await EDITOR_SIMULATEMODE(package); // //await FsmSystem.SetCurState(nameof(ResUpdateServerState)); // await FsmSystem.SetCurState(nameof(ArtResEditorSimulateState)); // #elif HOST_PLAYMODE // // //登录 // string url = AppConfig.IpConfig + "/Authentication/login"; // bool isLogin = await WebRequestSystem.Login(url, AppConfig.UserName, AppConfig.PassWord); // if (isLogin) // await HOST_PLAYMODE(package); // else // await Chche_PLAYMODE(package); // // // await FsmSystem.SetCurState(nameof(ArtResUpdateLocalState)); // #endif // } // // 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 UniTask OnExitAsync() // { // return UniTask.CompletedTask; // } // // private async UniTask EDITOR_SIMULATEMODE(ResourcePackage package) // { // // var initParams=YooAssetFileSystem.EditorSimulateInitializeParameter(package.PackageName); // var initialization = package.InitializeAsync(initParams); // await initialization; // if (initialization.Status == EOperationStatus.Succeed) // { // Assert.AreEqual(EOperationStatus.Succeed, initialization.Status); // Debug.Log("UnityEvo:资源包初始化成功!"); // } // else // { // Debug.LogError($"UnityEvo:资源包初始化失败:{initialization.Error}"); // } // // //运行模拟文件系统 // // } // private async UniTask Chche_PLAYMODE(ResourcePackage package) // { // Debug.Log("UnityEvo:网络连接不通畅,切换缓存加载!"); // var initParams=YooAssetFileSystem.HostInitializeParameter(); // var initOperation = package.InitializeAsync(initParams); // await initOperation; // // var operation = package.RequestPackageVersionAsync(); // await operation; // if (operation.Status == EOperationStatus.Succeed) // { // PlayerPrefs.SetString($"{AppConfig.PackageDomainName}_GAME_VERSION", operation.PackageVersion); // Debug.Log("UnityEvo:从本地缓存中加载资源包,初始化获取版本号成功!"); // }else // { // Debug.LogError($"UnityEvo:从本地缓存中加载资源包,初始化获取版本号失败!"); // } // // if (initOperation.Status == EOperationStatus.Succeed) // Debug.Log("UnityEvo:从本地缓存中资源包,初始化成功!"); // else // Debug.LogError($"UnityEvo:从本地缓存中资源包,初始化失败:{initOperation.Error}"); // } // // public async UniTask HOST_PLAYMODE(ResourcePackage package) // { // // 新增平台判断代码 // #if UNITY_EDITOR // BuildTarget buildTarget = UnityEditor.EditorUserBuildSettings.activeBuildTarget; // AppConfig.Platform = buildTarget.ToString(); // #else // AppConfig.Platform = Application.platform.ToString(); // #endif // Debug.Log($"目标平台标识: {AppConfig.Platform}"); // // // 请求资源版本 // string url = $"{AppConfig.IpConfig}/ResDomain/GetResDomainByDomain"; // var resDmainRequst = new ResDmainRequst() // { // ProductName = AppConfig.ProductName, // DomainName = AppConfig.PackageDomainName, // Platform = AppConfig.Platform, // }; // //获取服务器版本 // var resDmainMessageEntity = await WebRequestSystem.Post(url, JsonConvert.SerializeObject(resDmainRequst)); // if (resDmainMessageEntity.code == 200) // { // ResDmainResponse resDmainResponse = // JsonConvert.DeserializeObject(resDmainMessageEntity.data.ToString()); // //获取当前版本 // var oldVersion = PlayerPrefs.GetString($"{AppConfig.PackageDomainName}_GAME_VERSION"); // //版本不一致,开始下载 // if (resDmainResponse.PackageVersion != oldVersion) // { // await Download(resDmainResponse.DocumentFileId); // PlayerPrefs.SetString($"{AppConfig.PackageDomainName}_GAME_VERSION", // resDmainResponse.PackageVersion); // } // else //版本一致,加载缓存资源 // { // Debug.Log($"UnityEvo:资源版本一致,自动跳过更新..."); // } // } // else // { // Debug.LogError($"UnityEvo:获取资源版本失败: 【{resDmainMessageEntity.message}】"); // } // // var initParams=YooAssetFileSystem.HostInitializeParameter(); // // initParameters.CacheFileSystemParameters = cacheFileSystemParams; // // var initOperation = package.InitializeAsync(initParams); // // await initOperation; // // if (initOperation.Status == EOperationStatus.Succeed) // Debug.Log("UnityEvo:从远程加载资源包,初始化成功!"); // else // Debug.LogError($"UnityEvo:从远程加载资源包,初始化失败:{initOperation.Error}"); // } // // public async UniTask Download(string fileId) // { // // 在任意MonoBehaviour或DomainBase派生类中 // string loadPath = Path.Combine(Application.temporaryCachePath, "DownloadedContent", // AppConfig.PackageDomainName); // //string loadPath = $"{Application.persistentDataPath}/DownloadedContent/{AppConfig.PackageDomainName}"; // if (Directory.Exists(loadPath)) // { // Directory.Delete(loadPath, true); // // 等一帧,让系统真正释放句柄 // await UniTask.DelayFrame(1); // } // FsmLoadSystem loadSystem =FsmSystem as FsmLoadSystem; // if (loadSystem.ProgressBarPanel == null) // { // loadSystem.ProgressBarPanel =Object.Instantiate(Resources.Load("ProgressBarPanel"), // Camera.main.transform).GetOrAddComponent(); // } // await ZipTool.DownloadAndUnzipAsync(fileId, loadPath, DownLoadProgress, UnzipProgress); // } // // private void DownLoadProgress(float progress) // { // Debug.Log($"下载进度:{progress:P0}"); // FsmLoadSystem loadSystem =FsmSystem as FsmLoadSystem; // loadSystem.ProgressBarPanel.SetProgressBarValue("下载中", progress); // } // // private void UnzipProgress(float progress) // { // Debug.Log($"解压进度:{progress:P0}"); // FsmLoadSystem loadSystem =FsmSystem as FsmLoadSystem; // loadSystem.ProgressBarPanel.SetProgressBarValue("解压中", progress); // } // } // }