【m】框架优化
This commit is contained in:
@@ -1,147 +1,147 @@
|
||||
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<ArtSceneData>("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>(T param)
|
||||
{
|
||||
return UniTask.CompletedTask;
|
||||
}
|
||||
|
||||
public override UniTask OnEnterAsync<T1, T2>(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
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
// 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<ArtSceneData>("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>(T param)
|
||||
// {
|
||||
// return UniTask.CompletedTask;
|
||||
// }
|
||||
//
|
||||
// public override UniTask OnEnterAsync<T1, T2>(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
|
||||
//
|
||||
//
|
||||
// }
|
||||
// }
|
||||
Reference in New Issue
Block a user