com.alicizax.unity.framework/Runtime/Resource/Resource/ResourceService.Pool.cs
陈思海 cad7722e44 优化
1.重名所有App级模块为Service
2.移除Module中心 移除SingletonManager
3.引入Service Scope Context概念  避免上下文Manager到处引用
4.修复部分bug
2026-03-26 16:14:05 +08:00

68 lines
1.8 KiB
C#

using AlicizaX.ObjectPool;
using AlicizaX;
namespace AlicizaX.Resource.Runtime
{
internal partial class ResourceService
{
private IObjectPool<AssetObject> _assetPool;
/// <summary>
/// 获取或设置资源对象池自动释放可释放对象的间隔秒数。
/// </summary>
public float AssetAutoReleaseInterval
{
get => _assetPool.AutoReleaseInterval;
set => _assetPool.AutoReleaseInterval = value;
}
/// <summary>
/// 获取或设置资源对象池的容量。
/// </summary>
public int AssetCapacity
{
get => _assetPool.Capacity;
set => _assetPool.Capacity = value;
}
/// <summary>
/// 获取或设置资源对象池对象过期秒数。
/// </summary>
public float AssetExpireTime
{
get => _assetPool.ExpireTime;
set => _assetPool.ExpireTime = value;
}
/// <summary>
/// 获取或设置资源对象池的优先级。
/// </summary>
public int AssetPriority
{
get => _assetPool.Priority;
set => _assetPool.Priority = value;
}
/// <summary>
/// 卸载资源。
/// </summary>
/// <param name="asset">要卸载的资源。</param>
public void UnloadAsset(object asset)
{
if (_assetPool != null)
{
_assetPool.Unspawn(asset);
}
}
/// <summary>
/// 设置对象池管理器。
/// </summary>
/// <param name="objectPoolModule">对象池管理器。</param>
public void CreateAssetPool( )
{
_assetPool = Context.Require<IObjectPoolService>().CreateMultiSpawnObjectPool<AssetObject>("Asset Pool");
}
}
}