| GameObjectPoolManager Class | 
[This is preliminary documentation and is subject to change.]
 Inheritance Hierarchy
Inheritance HierarchyNamespace: Umbrace.Unity.PurePool
 Syntax
Syntaxpublic class GameObjectPoolManager : PoolManagerBase<GameObjectPoolManagerSettings, GameObjectPool, GameObjectPoolSettings, GameObject, GameObject>
The GameObjectPoolManager type exposes the following members.
 Constructors
Constructors| Name | Description | |
|---|---|---|
|  | GameObjectPoolManager | Initializes a new instance of the GameObjectPoolManager class | 
 Properties
Properties| Name | Description | |
|---|---|---|
|  | AcquireMode | 
            Gets or sets the way in which to handle attempts to acquire an object, for which no pool exists.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | AttachDescendentPools | 
            Gets or sets value indicating whether to attach all descendent pools to the manager on startup.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | DefaultPoolSettings | 
            Gets the settings that are used when a new pool is created.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | DontDestroyOnLoad | 
            Gets or sets a value indicating whether the pool manager (and the pools beneath it) will remain in the scene when a new scene is loaded.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | Enabled | 
            Gets or sets a value indicating whether pooling is enabled.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|   | Instance | 
            Gets the GameObjectPoolManager found in the scene.
             | 
|  | ObjectPools | 
            When overridden in a derived class, gets the internal object pool dictionary, mapping from the source object to its pool.
            (Overrides PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstanceObjectPools.) | 
|  | PoolCount | 
            Gets the number of pools attached to the manager.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | Pools | 
            Gets the collection of pools attached to the manager.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
 Methods
Methods| Name | Description | |
|---|---|---|
|  | Acquire(TSource) | 
            Acquires an instance of source from an attached pool.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | Acquire(GameObject, Transform) | 
            Acquires an instance of sourceObject from an attached pool, and sets its parent transform.
             | 
|  | Acquire(GameObject, Transform, Boolean) | 
            Acquires an instance of sourceObject from an attached pool, and sets its parent transform.
             | 
|  | Acquire(GameObject, Vector3, Quaternion) | 
            Acquires an instance of sourceObject from an attached pool, and sets its position and rotation.
             | 
|  | Acquire(GameObject, Vector3, Quaternion, Transform) | 
            Acquires an instance of sourceObject from an attached pool, and sets its parent transform, position and rotation.
             | 
|  | AttachPool | 
            Attaches the specified pool to the manager, allowing the manager to acquire and release instances from it.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | Awake | (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | CanAcquire | 
            Determines whether an instance of sourceObject can be acquired from its pool.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | CreatePool(GameObject) | 
            Creates a GameObjectPool that pools instances of sourceObject, and attaches it to the manager.
            The pool is created on a child object of the manager's game object.
             | 
|  | CreatePool(TPoolSettings) | 
            Creates a new pool using the specified settings, and attaches it to the manager.
            The pool is created on a child object of the manager's game object.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | CreatePool(GameObject, GameObject, Boolean) | 
            Creates a GameObjectPool that pools instances of sourceObject, and attaches it to the manager.
             | 
|  | CreatePool(TPoolSettings, GameObject, Boolean, String) | 
            Creates a new pool using the specified settings, and attaches it to the manager.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | DestroyPool | 
            Destroys the specified pool that's attached to the manager.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | DetachPool | 
            Detaches the specified pool from the manager, without destroying it.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | Equals | (Inherited from Object.) | 
|  | Finalize | (Inherited from Object.) | 
|  | FindChildPools | 
            Finds all pools that are parented to the manager's game object.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | GetHashCode | (Inherited from Object.) | 
|  | GetPool | 
            Gets the pool that handles instances of the specified source object.
            The manager must contain a matching pool to use this method.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | GetPooledCount | 
            Gets the number of instances of the specified object contained in the pool.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | GetSourceName | 
            When implemented in a derived class, gets the name of the specified source.
            (Overrides PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstanceGetSourceName(TSource).) | 
|  | GetType | (Inherited from Object.) | 
|  | HasPool | 
            Determines whether the manager has a pool that handles instances of the specified source object.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | InternalAcquire | 
            When implemented in a derived class, attempts to acquire an instance of a source according to AcquireMode.
            (Overrides PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstanceInternalAcquire(TSource, TPool, TInstance).) | 
|  | IsAttached | 
            Determines whether the specified pool is attached to the manager.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | IsPoolEmpty | 
            Determines whether the pool is empty for instances of the specified object.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | MemberwiseClone | (Inherited from Object.) | 
|  | OnPoolAttached | 
            Raises the PoolAttached event.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | OnPoolCreated | 
            Raises the PoolCreated event.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | OnPoolDestroyed | 
            Raises the PoolDestroyed event.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | OnPoolDetached | 
            Raises the PoolDetached event.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | Release | 
            Releases an instance that was previously acquired from an attached pool.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | ReleaseInternal | 
            Releases an instance of a game object that was previously acquired from an attached pool.
            (Overrides PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstanceReleaseInternal(TInstance).) | 
|  | ToString | (Inherited from Object.) | 
|  | TryAcquire(TSource, TInstance) | 
            Acquires an instance of sourceObject from an attached pool.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | TryAcquire(GameObject, Transform, GameObject) | 
            Acquires an instance of sourceObject from an attached pool, and sets its parent transform.
             | 
|  | TryAcquire(GameObject, Transform, Boolean, GameObject) | 
            Acquires an instance of sourceObject from an attached pool, and sets its parent transform.
             | 
|  | TryAcquire(GameObject, Vector3, Quaternion, GameObject) | 
            Acquires an instance of sourceObject from an attached pool, and sets its position and rotation.
             | 
|  | TryAcquire(GameObject, Vector3, Quaternion, Transform, GameObject) | 
            Acquires an instance of sourceObject from an attached pool, and sets its parent transform, position and rotation.
             | 
|  | TryGetPool | 
            Gets the pool that handles instances of the specified source object.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
 Events
Events| Name | Description | |
|---|---|---|
|  | PoolAttached | 
            Occurs when a GameObjectPool is attached to the manager.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | PoolCreated | 
            Occurs when a GameObjectPool is created by the manager.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | PoolDestroyed | 
            Occurs when a GameObjectPool is destroyed by the manager.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
|  | PoolDetached | 
            Occurs when a GameObjectPool is detached from the manager.
            (Inherited from PoolManagerBaseTManagerSettings, TPool, TPoolSettings, TSource, TInstance.) | 
 Examples
Examples// Create the manager as a component on a game object. var manager = gameObject.AddComponent<GameObjectPoolManager>(); // Set up the manager's properties. manager.DontDestroyOnLoad = true; manager.AttachDescendentPools = true; manager.AcquireMode = AcquireNoPoolMode.CreatePool; // Attach an existing pool to the manager. manager.AttachPool(pool); // Create a pool that is attached to the manager. manager.CreatePool(new GameObjectPoolSettings { Source = myPrefab, DontDestroyOnLoad = true, Enabled = true, InitialiseOnStart = true, InitialSize = 10, InstantiateWhenEmpty = true, LogMessages = LogLevel.Warning, MaximumSize = 50, NotificationMode = NotificationMode.Interface, RecordStatistics = true, ReparentPooledObjects = true }); // Acquire an instance of myPrefab from the manager. The Acquire method can be used safely if the myPrefab pool's InstantiateWhenEmpty property is true, or if a check is made to CanAcquire beforehand. GameObject instance = manager.Acquire(myPrefab); // Acquire another myPrefab instance from the manager. TryAcquire can be used safely even when InstantiateWhenEmpty is false. GameObject secondInstance; if (manager.TryAcquire(myPrefab, out secondInstance)) { // Release the instance back to the manager. manager.Release(secondInstance); } // Release the instance back to the manager. manager.Release(instance);
 See Also
See Also