【m】框架大更新

This commit is contained in:
2025-10-31 11:18:23 +08:00
parent ae6e7c804b
commit 8e1d52ddbf
1883 changed files with 213934 additions and 640 deletions

View File

@@ -1,5 +1,8 @@
using Main;
using System;
using Cysharp.Threading.Tasks;
using Main;
using UnityEngine;
using YooAsset;
namespace Stary.Evo
{
@@ -31,5 +34,28 @@ namespace Stary.Evo
{
return this.transformCtor;
}
// 强制卸载所有资源包,该方法请在合适的时机调用。
// 注意Package在销毁的时候也会自动调用该方法。
public async UniTask ForceUnloadAllAssets(string packageName)
{
var package = YooAssets.TryGetPackage(packageName);
if (package != null)
{
var operation = package.UnloadAllAssetsAsync();
await operation;
await package.DestroyAsync();
YooAssets.RemovePackage(packageName);
Resources.UnloadUnusedAssets();
GC.Collect();
GC.WaitForPendingFinalizers();
Debug.Log($"UnityEvo:{packageName} 资源包已卸载...");
}
else
{
Debug.LogWarning($"UnityEvo:{packageName} 资源包不存在,请检查是否已经卸载还是卸载异常...");
}
}
}
}

View File

@@ -175,36 +175,14 @@ namespace Stary.Evo
{
GameObject.Destroy(domainBase.gameObject);
await ForceUnloadAllAssets(domainBase.DomainName);
await ((FsmLoadSystem)FsmSystem).ForceUnloadAllAssets(domainBase.DomainName);
}
if (loadResType == DomainConfig.LoadResType.Scene)
{
await SceneManager.UnloadSceneAsync(_sceneName);
}
AppConfig.PackageDomainName = "";
}
}
// 强制卸载所有资源包,该方法请在合适的时机调用。
// 注意Package在销毁的时候也会自动调用该方法。
private async UniTask ForceUnloadAllAssets(string packageName)
{
var package = YooAssets.TryGetPackage(packageName);
if (package != null)
{
var operation = package.UnloadAllAssetsAsync();
await operation;
await package.DestroyAsync();
YooAssets.RemovePackage(packageName);
Resources.UnloadUnusedAssets();
GC.Collect();
GC.WaitForPendingFinalizers();
Debug.Log($"UnityEvo:{packageName} 资源包已卸载...");
}
else
{
Debug.LogWarning($"UnityEvo:{packageName} 资源包不存在,请检查是否已经卸载还是卸载异常...");
}
}
}

View File

@@ -5,9 +5,9 @@ using YooAsset;
namespace Stary.Evo
{
public class ResUpdateServerState : AbstractFSMIStateAsync
public class ResEditorSimulateState : AbstractFSMIStateAsync
{
public ResUpdateServerState(IFsmSystemAsync system) : base(system)
public ResEditorSimulateState(IFsmSystemAsync system) : base(system)
{
}

View File

@@ -37,13 +37,6 @@ namespace Stary.Evo
Debug.Log($"UnityEvo:读取资源配置表成功...{AppConfig.IpConfig}{AppConfig.UserName}{AppConfig.PassWord}");
// 初始化资源系统
YooAssets.Initialize();
//自定义网络请求器
// 设置自定义请求委托
//YooAssets.SetDownloadSystemUnityWebRequest(NasWebRequester);
//初始化资源加载模块
// 增加包存在性检查
var package = YooAssets.TryGetPackage(AppConfig.PackageDomainName);
@@ -58,10 +51,10 @@ namespace Stary.Evo
// 初始化资源包
#if EDITOR_SIMULATEMODE
await EDITOR_SIMULATEMODE(package);
FsmSystem.SetCurState(nameof(ResUpdateServerState));
await FsmSystem.SetCurState(nameof(ResEditorSimulateState));
#elif OFFLINE_PLAYMODE
await OFFLINE_PLAYMODE(package);
FsmSystem.SetCurState(nameof(ResUpdateLocalState));
await FsmSystem.SetCurState(nameof(ResUpdateLocalState));
#elif HOST_PLAYMODE
//登录
@@ -70,10 +63,10 @@ namespace Stary.Evo
if (isLogin)
await HOST_PLAYMODE(package);
else
await Chche_PLAYMODE(package);
await ChChe_PLAYMODE(package);
FsmSystem.SetCurState(nameof(ResUpdateLocalState));
await FsmSystem.SetCurState(nameof(ResUpdateLocalState));
#elif WEB_PLAYMODE
// IRemoteServices remoteServices = new RemoteServices(defaultHostServer, fallbackHostServer);
@@ -134,10 +127,10 @@ namespace Stary.Evo
Debug.LogError($"UnityEvo:资源包初始化失败:{initialization.Error}");
}
}
private async UniTask Chche_PLAYMODE(ResourcePackage package)
private async UniTask ChChe_PLAYMODE(ResourcePackage package)
{
Debug.Log("UnityEvo:网络连接不通畅,切换缓存加载!");
var initParams=YooAssetFileSystem.hostInitializeParameter();
var initParams=YooAssetFileSystem.HostInitializeParameter();
var initOperation = package.InitializeAsync(initParams);
await initOperation;
@@ -224,7 +217,7 @@ namespace Stary.Evo
Debug.LogError($"UnityEvo:获取资源版本失败: 【{resDmainMessageEntity.message}】");
}
var initParams=YooAssetFileSystem.hostInitializeParameter();
var initParams=YooAssetFileSystem.HostInitializeParameter();
// initParameters.CacheFileSystemParameters = cacheFileSystemParams;
var initOperation = package.InitializeAsync(initParams);

View File

@@ -22,23 +22,23 @@ namespace Stary.Evo
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
// 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);