class ObjectPool
(Niantic.Lightship.Maps.ObjectPools.ObjectPool)
Overview
A general-purpose object pool for types derived from Unity's UnityObject
template <T>
class ObjectPool: IPooledObjectAccessor< T > {
public:
// methods
ObjectPool(
T source,
Action<T> onCreate = null,
Action<PooledObject<T>> onAcquire = null,
Action<T> onRelease = null
);
PooledObject<T> GetOrCreate();
};
Detailed Documentation
A general-purpose object pool for types derived from Unity's UnityObject
Parameters:
T
- The pool's derived type
Methods
ObjectPool
ObjectPool(
T source,
Action<T> onCreate = null,
Action<PooledObject<T>> onAcquire = null,
Action<T> onRelease = null
)
Constructor
Parameters:
source
- The object to be duplicated in the pool.
onCreate
- An action invoked on a newly instantiated object when it is first created.
onAcquire
- An action invoked on a new or reused object when it is acquired, before it is returned to the caller.
onRelease
- An action invoked on an object when it is released.
ArgumentNullException
- Thrown if source is null.
GetOrCreate
PooledObject<T> GetOrCreate()
Gets an object in the Pool if one is available. Otherwise, returns a new instance of the object and calls onCreate() on it.
Returns:
An object in the Pool, if one is available. Otherwise, a new instance of the object.