Files
plugin-library/Assets/00.StaryEvoTools/Runtime/HybridLoad/Fsm/FsmLoadSystem.cs
2026-01-05 17:58:53 +08:00

63 lines
1.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using Cysharp.Threading.Tasks;
using Main;
using UnityEngine;
using YooAsset;
namespace Stary.Evo
{
public class FsmLoadSystem : FsmSystemAsync , IFsmSystemAsync
{
private OpenDomainType OpenDomainType { get; set; }
private TransformCtor transformCtor;
public ProgressBarPanel ProgressBarPanel { get; set; }
public bool IsLogin = false;
public void SetOpenDomainType(OpenDomainType type)
{
this.OpenDomainType = type;
}
public void SetTransformCtor(Transform transform)
{
this.transformCtor = transform.GetTransformCtor();
}
public void SetTransformCtor(TransformCtor transformCtor)
{
this.transformCtor = transformCtor;
}
public OpenDomainType GetOpenDomainType()
{
return this.OpenDomainType;
}
public TransformCtor GetTransformCtor()
{
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} 资源包不存在,请检查是否已经卸载还是卸载异常...");
}
}
}
}