com.alicizax.unity/Runtime/ObjectPool/ObjectPoolComponent.cs

47 lines
1.2 KiB
C#
Raw Normal View History

2025-03-20 20:47:11 +08:00
using AlicizaX.ObjectPool;
2025-02-07 16:04:12 +08:00
using UnityEngine;
2025-03-24 13:16:51 +08:00
namespace AlicizaX
2025-02-07 16:04:12 +08:00
{
/// <summary>
/// 对象池组件。
/// </summary>
2025-03-20 20:47:11 +08:00
public sealed class ObjectPoolComponent : MonoBehaviour
2025-02-07 16:04:12 +08:00
{
2025-03-20 20:47:11 +08:00
private IObjectPoolModule _mObjectPoolModule = null;
2025-02-07 16:04:12 +08:00
/// <summary>
/// 获取对象池数量。
/// </summary>
public int Count
{
2025-03-20 20:47:11 +08:00
get { return _mObjectPoolModule.Count; }
2025-02-07 16:04:12 +08:00
}
2025-03-20 20:47:11 +08:00
private void Awake()
2025-02-07 16:04:12 +08:00
{
2025-04-27 19:27:48 +08:00
_mObjectPoolModule = ModuleSystem.RegisterModule<IObjectPoolModule,ObjectPoolModule>();
2025-03-20 20:47:11 +08:00
if (_mObjectPoolModule == null)
2025-02-07 16:04:12 +08:00
{
2025-03-24 13:16:51 +08:00
Log.Error("Object pool manager is invalid.");
2025-02-07 16:04:12 +08:00
return;
}
}
private void OnDestroy()
{
2025-03-20 20:47:11 +08:00
_mObjectPoolModule = null;
2025-02-07 16:04:12 +08:00
}
/// <summary>
/// 获取所有对象池。
/// </summary>
/// <param name="sort">是否根据对象池的优先级排序。</param>
/// <returns>所有对象池。</returns>
public ObjectPoolBase[] GetAllObjectPools(bool sort)
{
2025-03-20 20:47:11 +08:00
return _mObjectPoolModule.GetAllObjectPools(sort);
2025-02-07 16:04:12 +08:00
}
}
2025-03-20 20:47:11 +08:00
}