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