using Axibug; using Axibug.ObjectPool; using System; using System.Collections.Generic; using UnityEngine; namespace Axibug.Runtime { /// /// 对象池组件。 /// [DisallowMultipleComponent] [AddComponentMenu("Axibug/Object Pool")] public sealed class ObjectPoolComponent : GameComponent { private IObjectPoolManager m_ObjectPoolManager = null; /// /// 获取对象池数量。 /// public int Count { get { return m_ObjectPoolManager.Count; } } /// /// 游戏框架组件初始化。 /// protected override void Awake() { base.Awake(); m_ObjectPoolManager = FrameworkEntry.GetModule(); if (m_ObjectPoolManager == null) { Log.Fatal("Object pool manager is invalid."); return; } } private void Start() { } /// /// 检查是否存在对象池。 /// /// 对象类型。 /// 是否存在对象池。 public bool HasObjectPool() where T : ObjectBase { return m_ObjectPoolManager.HasObjectPool(); } /// /// 检查是否存在对象池。 /// /// 对象类型。 /// 是否存在对象池。 public bool HasObjectPool(Type objectType) { return m_ObjectPoolManager.HasObjectPool(objectType); } /// /// 检查是否存在对象池。 /// /// 对象类型。 /// 对象池名称。 /// 是否存在对象池。 public bool HasObjectPool(string name) where T : ObjectBase { return m_ObjectPoolManager.HasObjectPool(name); } /// /// 检查是否存在对象池。 /// /// 对象类型。 /// 对象池名称。 /// 是否存在对象池。 public bool HasObjectPool(Type objectType, string name) { return m_ObjectPoolManager.HasObjectPool(objectType, name); } /// /// 检查是否存在对象池。 /// /// 要检查的条件。 /// 是否存在对象池。 public bool HasObjectPool(Predicate condition) { return m_ObjectPoolManager.HasObjectPool(condition); } /// /// 获取对象池。 /// /// 对象类型。 /// 要获取的对象池。 public IObjectPool GetObjectPool() where T : ObjectBase { return m_ObjectPoolManager.GetObjectPool(); } /// /// 获取对象池。 /// /// 对象类型。 /// 要获取的对象池。 public ObjectPoolBase GetObjectPool(Type objectType) { return m_ObjectPoolManager.GetObjectPool(objectType); } /// /// 获取对象池。 /// /// 对象类型。 /// 对象池名称。 /// 要获取的对象池。 public IObjectPool GetObjectPool(string name) where T : ObjectBase { return m_ObjectPoolManager.GetObjectPool(name); } /// /// 获取对象池。 /// /// 对象类型。 /// 对象池名称。 /// 要获取的对象池。 public ObjectPoolBase GetObjectPool(Type objectType, string name) { return m_ObjectPoolManager.GetObjectPool(objectType, name); } /// /// 获取对象池。 /// /// 要检查的条件。 /// 要获取的对象池。 public ObjectPoolBase GetObjectPool(Predicate condition) { return m_ObjectPoolManager.GetObjectPool(condition); } /// /// 获取对象池。 /// /// 要检查的条件。 /// 要获取的对象池。 public ObjectPoolBase[] GetObjectPools(Predicate condition) { return m_ObjectPoolManager.GetObjectPools(condition); } /// /// 获取对象池。 /// /// 要检查的条件。 /// 要获取的对象池。 public void GetObjectPools(Predicate condition, List results) { m_ObjectPoolManager.GetObjectPools(condition, results); } /// /// 获取所有对象池。 /// public ObjectPoolBase[] GetAllObjectPools() { return m_ObjectPoolManager.GetAllObjectPools(); } /// /// 获取所有对象池。 /// /// 所有对象池。 public void GetAllObjectPools(List results) { m_ObjectPoolManager.GetAllObjectPools(results); } /// /// 获取所有对象池。 /// /// 是否根据对象池的优先级排序。 /// 所有对象池。 public ObjectPoolBase[] GetAllObjectPools(bool sort) { return m_ObjectPoolManager.GetAllObjectPools(sort); } /// /// 获取所有对象池。 /// /// 是否根据对象池的优先级排序。 /// 所有对象池。 public void GetAllObjectPools(bool sort, List results) { m_ObjectPoolManager.GetAllObjectPools(sort, results); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 要创建的允许单次获取的对象池。 public IObjectPool CreateSingleSpawnObjectPool() where T : ObjectBase { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 要创建的允许单次获取的对象池。 public ObjectPoolBase CreateSingleSpawnObjectPool(Type objectType) { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(objectType); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 要创建的允许单次获取的对象池。 public IObjectPool CreateSingleSpawnObjectPool(string name) where T : ObjectBase { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(name); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 要创建的允许单次获取的对象池。 public ObjectPoolBase CreateSingleSpawnObjectPool(Type objectType, string name) { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(objectType, name); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池的容量。 /// 要创建的允许单次获取的对象池。 public IObjectPool CreateSingleSpawnObjectPool(int capacity) where T : ObjectBase { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(capacity); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池的容量。 /// 要创建的允许单次获取的对象池。 public ObjectPoolBase CreateSingleSpawnObjectPool(Type objectType, int capacity) { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(objectType, capacity); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池对象过期秒数。 /// 要创建的允许单次获取的对象池。 public IObjectPool CreateSingleSpawnObjectPool(float expireTime) where T : ObjectBase { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(expireTime); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池对象过期秒数。 /// 要创建的允许单次获取的对象池。 public ObjectPoolBase CreateSingleSpawnObjectPool(Type objectType, float expireTime) { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(objectType, expireTime); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池的容量。 /// 要创建的允许单次获取的对象池。 public IObjectPool CreateSingleSpawnObjectPool(string name, int capacity) where T : ObjectBase { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(name, capacity); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池的容量。 /// 要创建的允许单次获取的对象池。 public ObjectPoolBase CreateSingleSpawnObjectPool(Type objectType, string name, int capacity) { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(objectType, name, capacity); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池对象过期秒数。 /// 要创建的允许单次获取的对象池。 public IObjectPool CreateSingleSpawnObjectPool(string name, float expireTime) where T : ObjectBase { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(name, expireTime); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池对象过期秒数。 /// 要创建的允许单次获取的对象池。 public ObjectPoolBase CreateSingleSpawnObjectPool(Type objectType, string name, float expireTime) { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(objectType, name, expireTime); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池的容量。 /// 对象池对象过期秒数。 /// 要创建的允许单次获取的对象池。 public IObjectPool CreateSingleSpawnObjectPool(int capacity, float expireTime) where T : ObjectBase { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(capacity, expireTime); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池的容量。 /// 对象池对象过期秒数。 /// 要创建的允许单次获取的对象池。 public ObjectPoolBase CreateSingleSpawnObjectPool(Type objectType, int capacity, float expireTime) { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(objectType, capacity, expireTime); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池的容量。 /// 对象池的优先级。 /// 要创建的允许单次获取的对象池。 public IObjectPool CreateSingleSpawnObjectPool(int capacity, int priority) where T : ObjectBase { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(capacity, priority); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池的容量。 /// 对象池的优先级。 /// 要创建的允许单次获取的对象池。 public ObjectPoolBase CreateSingleSpawnObjectPool(Type objectType, int capacity, int priority) { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(objectType, capacity, priority); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池对象过期秒数。 /// 对象池的优先级。 /// 要创建的允许单次获取的对象池。 public IObjectPool CreateSingleSpawnObjectPool(float expireTime, int priority) where T : ObjectBase { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(expireTime, priority); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池对象过期秒数。 /// 对象池的优先级。 /// 要创建的允许单次获取的对象池。 public ObjectPoolBase CreateSingleSpawnObjectPool(Type objectType, float expireTime, int priority) { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(objectType, expireTime, priority); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池的容量。 /// 对象池对象过期秒数。 /// 要创建的允许单次获取的对象池。 public IObjectPool CreateSingleSpawnObjectPool(string name, int capacity, float expireTime) where T : ObjectBase { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(name, capacity, expireTime); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池的容量。 /// 对象池对象过期秒数。 /// 要创建的允许单次获取的对象池。 public ObjectPoolBase CreateSingleSpawnObjectPool(Type objectType, string name, int capacity, float expireTime) { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(objectType, name, capacity, expireTime); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池的容量。 /// 对象池的优先级。 /// 要创建的允许单次获取的对象池。 public IObjectPool CreateSingleSpawnObjectPool(string name, int capacity, int priority) where T : ObjectBase { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(name, capacity, priority); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池的容量。 /// 对象池的优先级。 /// 要创建的允许单次获取的对象池。 public ObjectPoolBase CreateSingleSpawnObjectPool(Type objectType, string name, int capacity, int priority) { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(objectType, name, capacity, priority); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池对象过期秒数。 /// 对象池的优先级。 /// 要创建的允许单次获取的对象池。 public IObjectPool CreateSingleSpawnObjectPool(string name, float expireTime, int priority) where T : ObjectBase { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(name, expireTime, priority); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池对象过期秒数。 /// 对象池的优先级。 /// 要创建的允许单次获取的对象池。 public ObjectPoolBase CreateSingleSpawnObjectPool(Type objectType, string name, float expireTime, int priority) { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(objectType, name, expireTime, priority); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池的容量。 /// 对象池对象过期秒数。 /// 对象池的优先级。 /// 要创建的允许单次获取的对象池。 public IObjectPool CreateSingleSpawnObjectPool(int capacity, float expireTime, int priority) where T : ObjectBase { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(capacity, expireTime, priority); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池的容量。 /// 对象池对象过期秒数。 /// 对象池的优先级。 /// 要创建的允许单次获取的对象池。 public ObjectPoolBase CreateSingleSpawnObjectPool(Type objectType, int capacity, float expireTime, int priority) { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(objectType, capacity, expireTime, priority); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池的容量。 /// 对象池对象过期秒数。 /// 对象池的优先级。 /// 要创建的允许单次获取的对象池。 public IObjectPool CreateSingleSpawnObjectPool(string name, int capacity, float expireTime, int priority) where T : ObjectBase { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(name, capacity, expireTime, priority); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池的容量。 /// 对象池对象过期秒数。 /// 对象池的优先级。 /// 要创建的允许单次获取的对象池。 public ObjectPoolBase CreateSingleSpawnObjectPool(Type objectType, string name, int capacity, float expireTime, int priority) { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(objectType, name, capacity, expireTime, priority); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池自动释放可释放对象的间隔秒数。 /// 对象池的容量。 /// 对象池对象过期秒数。 /// 对象池的优先级。 /// 要创建的允许单次获取的对象池。 public IObjectPool CreateSingleSpawnObjectPool(string name, float autoReleaseInterval, int capacity, float expireTime, int priority) where T : ObjectBase { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(name, autoReleaseInterval, capacity, expireTime, priority); } /// /// 创建允许单次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池自动释放可释放对象的间隔秒数。 /// 对象池的容量。 /// 对象池对象过期秒数。 /// 对象池的优先级。 /// 要创建的允许单次获取的对象池。 public ObjectPoolBase CreateSingleSpawnObjectPool(Type objectType, string name, float autoReleaseInterval, int capacity, float expireTime, int priority) { return m_ObjectPoolManager.CreateSingleSpawnObjectPool(objectType, name, autoReleaseInterval, capacity, expireTime, priority); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 要创建的允许多次获取的对象池。 public IObjectPool CreateMultiSpawnObjectPool() where T : ObjectBase { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 要创建的允许多次获取的对象池。 public ObjectPoolBase CreateMultiSpawnObjectPool(Type objectType) { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(objectType); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 要创建的允许多次获取的对象池。 public IObjectPool CreateMultiSpawnObjectPool(string name) where T : ObjectBase { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(name); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 要创建的允许多次获取的对象池。 public ObjectPoolBase CreateMultiSpawnObjectPool(Type objectType, string name) { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(objectType, name); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池的容量。 /// 要创建的允许多次获取的对象池。 public IObjectPool CreateMultiSpawnObjectPool(int capacity) where T : ObjectBase { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(capacity); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池的容量。 /// 要创建的允许多次获取的对象池。 public ObjectPoolBase CreateMultiSpawnObjectPool(Type objectType, int capacity) { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(objectType, capacity); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池对象过期秒数。 /// 要创建的允许多次获取的对象池。 public IObjectPool CreateMultiSpawnObjectPool(float expireTime) where T : ObjectBase { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(expireTime); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池对象过期秒数。 /// 要创建的允许多次获取的对象池。 public ObjectPoolBase CreateMultiSpawnObjectPool(Type objectType, float expireTime) { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(objectType, expireTime); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池的容量。 /// 要创建的允许多次获取的对象池。 public IObjectPool CreateMultiSpawnObjectPool(string name, int capacity) where T : ObjectBase { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(name, capacity); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池的容量。 /// 要创建的允许多次获取的对象池。 public ObjectPoolBase CreateMultiSpawnObjectPool(Type objectType, string name, int capacity) { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(objectType, name, capacity); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池对象过期秒数。 /// 要创建的允许多次获取的对象池。 public IObjectPool CreateMultiSpawnObjectPool(string name, float expireTime) where T : ObjectBase { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(name, expireTime); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池对象过期秒数。 /// 要创建的允许多次获取的对象池。 public ObjectPoolBase CreateMultiSpawnObjectPool(Type objectType, string name, float expireTime) { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(objectType, name, expireTime); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池的容量。 /// 对象池对象过期秒数。 /// 要创建的允许多次获取的对象池。 public IObjectPool CreateMultiSpawnObjectPool(int capacity, float expireTime) where T : ObjectBase { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(capacity, expireTime); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池的容量。 /// 对象池对象过期秒数。 /// 要创建的允许多次获取的对象池。 public ObjectPoolBase CreateMultiSpawnObjectPool(Type objectType, int capacity, float expireTime) { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(objectType, capacity, expireTime); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池的容量。 /// 对象池的优先级。 /// 要创建的允许多次获取的对象池。 public IObjectPool CreateMultiSpawnObjectPool(int capacity, int priority) where T : ObjectBase { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(capacity, priority); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池的容量。 /// 对象池的优先级。 /// 要创建的允许多次获取的对象池。 public ObjectPoolBase CreateMultiSpawnObjectPool(Type objectType, int capacity, int priority) { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(objectType, capacity, priority); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池对象过期秒数。 /// 对象池的优先级。 /// 要创建的允许多次获取的对象池。 public IObjectPool CreateMultiSpawnObjectPool(float expireTime, int priority) where T : ObjectBase { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(expireTime, priority); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池对象过期秒数。 /// 对象池的优先级。 /// 要创建的允许多次获取的对象池。 public ObjectPoolBase CreateMultiSpawnObjectPool(Type objectType, float expireTime, int priority) { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(objectType, expireTime, priority); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池的容量。 /// 对象池对象过期秒数。 /// 要创建的允许多次获取的对象池。 public IObjectPool CreateMultiSpawnObjectPool(string name, int capacity, float expireTime) where T : ObjectBase { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(name, capacity, expireTime); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池的容量。 /// 对象池对象过期秒数。 /// 要创建的允许多次获取的对象池。 public ObjectPoolBase CreateMultiSpawnObjectPool(Type objectType, string name, int capacity, float expireTime) { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(objectType, name, capacity, expireTime); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池的容量。 /// 对象池的优先级。 /// 要创建的允许多次获取的对象池。 public IObjectPool CreateMultiSpawnObjectPool(string name, int capacity, int priority) where T : ObjectBase { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(name, capacity, priority); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池的容量。 /// 对象池的优先级。 /// 要创建的允许多次获取的对象池。 public ObjectPoolBase CreateMultiSpawnObjectPool(Type objectType, string name, int capacity, int priority) { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(objectType, name, capacity, priority); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池对象过期秒数。 /// 对象池的优先级。 /// 要创建的允许多次获取的对象池。 public IObjectPool CreateMultiSpawnObjectPool(string name, float expireTime, int priority) where T : ObjectBase { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(name, expireTime, priority); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池对象过期秒数。 /// 对象池的优先级。 /// 要创建的允许多次获取的对象池。 public ObjectPoolBase CreateMultiSpawnObjectPool(Type objectType, string name, float expireTime, int priority) { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(objectType, name, expireTime, priority); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池的容量。 /// 对象池对象过期秒数。 /// 对象池的优先级。 /// 要创建的允许多次获取的对象池。 public IObjectPool CreateMultiSpawnObjectPool(int capacity, float expireTime, int priority) where T : ObjectBase { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(capacity, expireTime, priority); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池的容量。 /// 对象池对象过期秒数。 /// 对象池的优先级。 /// 要创建的允许多次获取的对象池。 public ObjectPoolBase CreateMultiSpawnObjectPool(Type objectType, int capacity, float expireTime, int priority) { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(objectType, capacity, expireTime, priority); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池的容量。 /// 对象池对象过期秒数。 /// 对象池的优先级。 /// 要创建的允许多次获取的对象池。 public IObjectPool CreateMultiSpawnObjectPool(string name, int capacity, float expireTime, int priority) where T : ObjectBase { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(name, capacity, expireTime, priority); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池的容量。 /// 对象池对象过期秒数。 /// 对象池的优先级。 /// 要创建的允许多次获取的对象池。 public ObjectPoolBase CreateMultiSpawnObjectPool(Type objectType, string name, int capacity, float expireTime, int priority) { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(objectType, name, capacity, expireTime, priority); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池自动释放可释放对象的间隔秒数。 /// 对象池的容量。 /// 对象池对象过期秒数。 /// 对象池的优先级。 /// 要创建的允许多次获取的对象池。 public IObjectPool CreateMultiSpawnObjectPool(string name, float autoReleaseInterval, int capacity, float expireTime, int priority) where T : ObjectBase { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(name, autoReleaseInterval, capacity, expireTime, priority); } /// /// 创建允许多次获取的对象池。 /// /// 对象类型。 /// 对象池名称。 /// 对象池自动释放可释放对象的间隔秒数。 /// 对象池的容量。 /// 对象池对象过期秒数。 /// 对象池的优先级。 /// 要创建的允许多次获取的对象池。 public ObjectPoolBase CreateMultiSpawnObjectPool(Type objectType, string name, float autoReleaseInterval, int capacity, float expireTime, int priority) { return m_ObjectPoolManager.CreateMultiSpawnObjectPool(objectType, name, autoReleaseInterval, capacity, expireTime, priority); } /// /// 销毁对象池。 /// /// 对象类型。 /// 是否销毁对象池成功。 public bool DestroyObjectPool() where T : ObjectBase { return m_ObjectPoolManager.DestroyObjectPool(); } /// /// 销毁对象池。 /// /// 对象类型。 /// 是否销毁对象池成功。 public bool DestroyObjectPool(Type objectType) { return m_ObjectPoolManager.DestroyObjectPool(objectType); } /// /// 销毁对象池。 /// /// 对象类型。 /// 要销毁的对象池名称。 /// 是否销毁对象池成功。 public bool DestroyObjectPool(string name) where T : ObjectBase { return m_ObjectPoolManager.DestroyObjectPool(name); } /// /// 销毁对象池。 /// /// 对象类型。 /// 要销毁的对象池名称。 /// 是否销毁对象池成功。 public bool DestroyObjectPool(Type objectType, string name) { return m_ObjectPoolManager.DestroyObjectPool(objectType, name); } /// /// 销毁对象池。 /// /// 对象类型。 /// 要销毁的对象池。 /// 是否销毁对象池成功。 public bool DestroyObjectPool(IObjectPool objectPool) where T : ObjectBase { return m_ObjectPoolManager.DestroyObjectPool(objectPool); } /// /// 销毁对象池。 /// /// 要销毁的对象池。 /// 是否销毁对象池成功。 public bool DestroyObjectPool(ObjectPoolBase objectPool) { return m_ObjectPoolManager.DestroyObjectPool(objectPool); } /// /// 释放对象池中的可释放对象。 /// public void Release() { Log.Info("Object pool release..."); m_ObjectPoolManager.Release(); } /// /// 释放对象池中的所有未使用对象。 /// public void ReleaseAllUnused() { Log.Info("Object pool release all unused..."); m_ObjectPoolManager.ReleaseAllUnused(); } } }