2026-03-31 17:25:20 +08:00
|
|
|
using AlicizaX.ObjectPool;
|
2025-10-11 15:18:09 +08:00
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
namespace AlicizaX
|
|
|
|
|
{
|
2026-04-22 13:04:31 +08:00
|
|
|
|
2025-10-11 15:18:09 +08:00
|
|
|
public sealed class ObjectPoolComponent : MonoBehaviour
|
|
|
|
|
{
|
2026-04-22 13:04:31 +08:00
|
|
|
private IObjectPoolService _mObjectPoolService;
|
2025-10-11 15:18:09 +08:00
|
|
|
|
2026-04-22 13:04:31 +08:00
|
|
|
public int Count => _mObjectPoolService.Count;
|
2025-10-11 15:18:09 +08:00
|
|
|
|
|
|
|
|
private void Awake()
|
|
|
|
|
{
|
2026-04-20 13:46:44 +08:00
|
|
|
_mObjectPoolService = AppServices.RegisterApp(new ObjectPoolService());
|
2026-04-22 13:04:31 +08:00
|
|
|
Application.lowMemory += OnLowMemory;
|
2025-10-11 15:18:09 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnDestroy()
|
|
|
|
|
{
|
2026-04-22 13:04:31 +08:00
|
|
|
Application.lowMemory -= OnLowMemory;
|
2026-03-26 16:14:05 +08:00
|
|
|
_mObjectPoolService = null;
|
2025-10-11 15:18:09 +08:00
|
|
|
}
|
|
|
|
|
|
2026-04-22 13:04:31 +08:00
|
|
|
private void OnLowMemory()
|
|
|
|
|
{
|
|
|
|
|
if (_mObjectPoolService is ObjectPoolService svc)
|
|
|
|
|
svc.OnLowMemory();
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-23 19:09:56 +08:00
|
|
|
internal int GetAllObjectPools(bool sort, ObjectPoolBase[] results)
|
2025-10-11 15:18:09 +08:00
|
|
|
{
|
2026-04-23 19:09:56 +08:00
|
|
|
if (_mObjectPoolService is IObjectPoolServiceDebugView debugView)
|
|
|
|
|
return debugView.GetAllObjectPools(sort, results);
|
|
|
|
|
|
|
|
|
|
return 0;
|
2025-10-11 15:18:09 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|