2025-10-31 11:18:23 +08:00
|
|
|
|
using System;
|
|
|
|
|
|
using Cysharp.Threading.Tasks;
|
|
|
|
|
|
using Main;
|
2025-09-10 10:08:35 +08:00
|
|
|
|
using UnityEngine;
|
2025-10-31 11:18:23 +08:00
|
|
|
|
using YooAsset;
|
2025-07-02 10:05:26 +08:00
|
|
|
|
|
|
|
|
|
|
namespace Stary.Evo
|
2025-05-23 18:26:47 +08:00
|
|
|
|
{
|
2025-09-02 14:15:18 +08:00
|
|
|
|
public class FsmLoadSystem : FsmSystemAsync , IFsmSystemAsync
|
2025-05-23 18:26:47 +08:00
|
|
|
|
{
|
|
|
|
|
|
private OpenDomainType OpenDomainType { get; set; }
|
|
|
|
|
|
|
2025-09-10 15:52:11 +08:00
|
|
|
|
private TransformCtor transformCtor;
|
2025-09-10 10:08:35 +08:00
|
|
|
|
|
2025-07-02 10:05:26 +08:00
|
|
|
|
public ProgressBarPanel ProgressBarPanel { get; set; }
|
2026-01-05 17:58:53 +08:00
|
|
|
|
|
|
|
|
|
|
public bool IsLogin = false;
|
2025-05-23 18:26:47 +08:00
|
|
|
|
public void SetOpenDomainType(OpenDomainType type)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.OpenDomainType = type;
|
|
|
|
|
|
}
|
2025-09-10 15:52:11 +08:00
|
|
|
|
public void SetTransformCtor(Transform transform)
|
2025-09-10 10:08:35 +08:00
|
|
|
|
{
|
2025-09-10 15:52:11 +08:00
|
|
|
|
this.transformCtor = transform.GetTransformCtor();
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SetTransformCtor(TransformCtor transformCtor)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.transformCtor = transformCtor;
|
2025-09-10 10:08:35 +08:00
|
|
|
|
}
|
2025-05-23 18:26:47 +08:00
|
|
|
|
public OpenDomainType GetOpenDomainType()
|
|
|
|
|
|
{
|
|
|
|
|
|
return this.OpenDomainType;
|
|
|
|
|
|
}
|
2025-09-10 10:08:35 +08:00
|
|
|
|
|
2025-09-10 15:52:11 +08:00
|
|
|
|
public TransformCtor GetTransformCtor()
|
2025-09-10 10:08:35 +08:00
|
|
|
|
{
|
2025-09-10 15:52:11 +08:00
|
|
|
|
return this.transformCtor;
|
2025-09-10 10:08:35 +08:00
|
|
|
|
}
|
2025-10-31 11:18:23 +08:00
|
|
|
|
|
|
|
|
|
|
// 强制卸载所有资源包,该方法请在合适的时机调用。
|
|
|
|
|
|
// 注意: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} 资源包不存在,请检查是否已经卸载还是卸载异常...");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-05-23 18:26:47 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|