• Hello
Search Results for

    Show / Hide Table of Contents

    Class AGamePool<T>

    Abstract base class for implementing a generic game object pooling system.

    Inheritance
    System.Object
    AGamePool<T>
    GlobalPool
    ScenePool
    Implements
    IPool
    Namespace: GUPS.EasyPooling
    Assembly: cs.temp.dll.dll
    Syntax
    public abstract class AGamePool<T> : Singleton<T>, IPool where T : AGamePool<T>
    Type Parameters
    Name Description
    T

    The type of the concrete pool class inheriting from this base class.

    Remarks

    The AGamePool<T> class serves as a foundation for creating specialized game object pooling systems in Unity. It extends the functionality of the class and implements the IPool interface, providing a robust and thread-safe mechanism for managing and reusing game objects efficiently.

    The pooling system maintains an empty pool for spawning and despawning empty game objects, and blueprint 'sub'-pools for managing different types of game objects. It supports various pooling strategies and allows for dynamic registration of blueprints during initialization. Blueprints can be registered with specified pooling strategies and initial capacities.

    The class provides a comprehensive set of methods for spawning and despawning game objects based on blueprint names, applying decorators and spawn policies as needed.

    Fields

    StartupBlueprints

    Array of GameObject blueprints to register on pool awake, useful if you want to assing protoypes in the inspector.

    Declaration
    public BlueprintPoolDefinition[] StartupBlueprints
    Field Value
    Type Description
    BlueprintPoolDefinition[]

    Properties

    Capacity

    Gets the capacity of the empty pool.

    Declaration
    public int Capacity { get; }
    Property Value
    Type Description
    System.Int32

    Count

    Gets the number of GameObjects in the empty pool.

    Declaration
    public int Count { get; }
    Property Value
    Type Description
    System.Int32

    Strategy

    Gets the pooling strategy of the empty pool.

    Declaration
    public EPoolingStrategy Strategy { get; }
    Property Value
    Type Description
    EPoolingStrategy

    Methods

    Awake()

    Called during Awake to initialize the LocalPool instance.

    Declaration
    protected override void Awake()

    Despawn(GameObject)

    Despawns a poolable GameObject back into the pool.

    Declaration
    public void Despawn(GameObject _PoolAble)
    Parameters
    Type Name Description
    GameObject _PoolAble

    The poolable GameObject to despawn.

    Despawn(GameObject, IUnDecorator)

    Despawns a poolable GameObject back into the pool using a provided un-decorator.

    Declaration
    public void Despawn(GameObject _PoolAble, IUnDecorator _UnDecorator)
    Parameters
    Type Name Description
    GameObject _PoolAble

    The poolable GameObject to despawn.

    IUnDecorator _UnDecorator

    The un-decorator to apply to the despawned GameObject.

    HasBlueprint(String)

    Checks if a blueprint pool with the specified name already exists.

    Declaration
    public bool HasBlueprint(string _Name)
    Parameters
    Type Name Description
    System.String _Name

    The name or identifier of the blueprint.

    Returns
    Type Description
    System.Boolean

    True if a pool with the specified name exists; otherwise, false.

    Register(BlueprintPoolDefinition)

    Declaration
    public void Register(BlueprintPoolDefinition _BlueprintPoolDefinition)
    Parameters
    Type Name Description
    BlueprintPoolDefinition _BlueprintPoolDefinition

    Register(String, GameObject, EPoolingStrategy, Int32)

    Registers a GameObject as poolable blueprint to the pool. This process creates a new local 'sub'-pool, clones the passed GameObject and attaches it to the new created 'sub'-pool as blueprint reference. If the GameObject has no IPoolAble component attached, the DefaultPoolAble component will be added.

    Declaration
    public void Register(string _Name, GameObject _Blueprint, EPoolingStrategy _PoolingStrategy = null, int _Capacity = 25)
    Parameters
    Type Name Description
    System.String _Name

    The name or identifier of the blueprint.

    GameObject _Blueprint

    The GameObject blueprint to register.

    EPoolingStrategy _PoolingStrategy

    The pooling strategy to use (optional, default is ).

    System.Int32 _Capacity

    The initial capacity of the pool (optional, default is 25).

    Spawn()

    Spawns an empty GameObject from the pool or creates a new one.

    Declaration
    public GameObject Spawn()
    Returns
    Type Description
    GameObject

    The spawned GameObject.

    Spawn(SpawnPolicy)

    Spawns an empty GameObject from the pool or creates a new one.

    Declaration
    public GameObject Spawn(SpawnPolicy _SpawnPolicy)
    Parameters
    Type Name Description
    SpawnPolicy _SpawnPolicy

    The spawn policy to apply. Applied before OnSpawn.

    Returns
    Type Description
    GameObject

    The spawned GameObject.

    Spawn(IDecorator)

    Spawns an empty GameObject from the pool or creates a new one and decorates it with the provided decorator.

    Declaration
    public GameObject Spawn(IDecorator _Decorator)
    Parameters
    Type Name Description
    IDecorator _Decorator

    The decorator to apply to the spawned GameObject.

    Returns
    Type Description
    GameObject

    The spawned GameObject.

    Spawn(IDecorator, SpawnPolicy)

    Spawns an empty GameObject from the pool or creates a new one and decorates it with the provided decorator and applying a spawn policy.

    Declaration
    public GameObject Spawn(IDecorator _Decorator, SpawnPolicy _SpawnPolicy)
    Parameters
    Type Name Description
    IDecorator _Decorator

    The decorator to apply to the spawned GameObject.

    SpawnPolicy _SpawnPolicy

    The spawn policy to apply.

    Returns
    Type Description
    GameObject

    The spawned GameObject.

    Spawn(IDecorator, Vector3, Quaternion)

    Spawns an empty GameObject from the pool or creates a new one and decorates it with the provided decorator at the specified position and rotation.

    Declaration
    public GameObject Spawn(IDecorator _Decorator, Vector3 _Position, Quaternion _Rotation)
    Parameters
    Type Name Description
    IDecorator _Decorator

    The decorator to apply to the spawned GameObject.

    Vector3 _Position

    The position at which to spawn the GameObject.

    Quaternion _Rotation

    The rotation at which to spawn the GameObject.

    Returns
    Type Description
    GameObject

    Spawn(String)

    Spawns a GameObject based on its blueprint name.

    Declaration
    public GameObject Spawn(string _Blueprint)
    Parameters
    Type Name Description
    System.String _Blueprint

    The name or identifier of the blueprint to spawn.

    Returns
    Type Description
    GameObject

    The spawned GameObject.

    Spawn(String, SpawnPolicy)

    Spawn a GameObject based on its blueprint name, applying a spawn policy.

    Declaration
    public GameObject Spawn(string _Blueprint, SpawnPolicy _SpawnPolicy)
    Parameters
    Type Name Description
    System.String _Blueprint

    The name or identifier of the blueprint to spawn.

    SpawnPolicy _SpawnPolicy

    The spawn policy to apply. Applied before OnSpawn.

    Returns
    Type Description
    GameObject

    The spawned GameObject.

    Spawn(String, IDecorator)

    Spawns a GameObject based on its blueprint name with a custom provided decorator.

    Declaration
    public GameObject Spawn(string _Blueprint, IDecorator _Decorator)
    Parameters
    Type Name Description
    System.String _Blueprint

    The name or identifier of the blueprint to spawn.

    IDecorator _Decorator

    The decorator to apply to the spawned GameObject.

    Returns
    Type Description
    GameObject

    The spawned GameObject.

    Spawn(String, IDecorator, SpawnPolicy)

    Spawns a GameObject based on its blueprint name with a custom provided decorator.

    Declaration
    public GameObject Spawn(string _Blueprint, IDecorator _Decorator, SpawnPolicy _SpawnPolicy)
    Parameters
    Type Name Description
    System.String _Blueprint

    The name or identifier of the blueprint to spawn.

    IDecorator _Decorator

    The decorator to apply to the spawned GameObject.

    SpawnPolicy _SpawnPolicy

    The spawn policy to apply. Applied before OnSpawn.

    Returns
    Type Description
    GameObject

    The spawned GameObject.

    Spawn(String, IDecorator, Vector3, Quaternion)

    Spawns a GameObject based on its blueprint name with a custom provided decorator at the specified position and rotation.

    Declaration
    public GameObject Spawn(string _Blueprint, IDecorator _Decorator, Vector3 _Position, Quaternion _Rotation)
    Parameters
    Type Name Description
    System.String _Blueprint

    The name or identifier of the blueprint to spawn.

    IDecorator _Decorator

    The decorator to apply to the spawned GameObject.

    Vector3 _Position

    The position at which to spawn the GameObject.

    Quaternion _Rotation

    The rotation at which to spawn the GameObject.

    Returns
    Type Description
    GameObject

    Spawn(String, Vector3, Quaternion)

    Spawns a GameObject based on its blueprint name at the specified position and rotation.

    Declaration
    public GameObject Spawn(string _Blueprint, Vector3 _Position, Quaternion _Rotation)
    Parameters
    Type Name Description
    System.String _Blueprint

    The name or identifier of the blueprint to spawn.

    Vector3 _Position

    The position at which to spawn the GameObject.

    Quaternion _Rotation

    The rotation at which to spawn the GameObject.

    Returns
    Type Description
    GameObject

    Spawn(Vector3, Quaternion)

    Spawns an empty GameObject from the pool or creates a new one at the specified position and rotation.

    Declaration
    public GameObject Spawn(Vector3 _Position, Quaternion _Rotation)
    Parameters
    Type Name Description
    Vector3 _Position

    The position at which to spawn the GameObject.

    Quaternion _Rotation

    The rotation at which to spawn the GameObject.

    Returns
    Type Description
    GameObject

    SpawnMany(IDecorator, Int32)

    Spawns multiple empty GameObjects from the pool or creates new ones, decorating each with the provided decorator.

    Declaration
    public GameObject[] SpawnMany(IDecorator _Decorator, int _Count)
    Parameters
    Type Name Description
    IDecorator _Decorator

    The decorator to apply to the spawned GameObjects.

    System.Int32 _Count

    The number of GameObjects to spawn.

    Returns
    Type Description
    GameObject[]

    An array of spawned GameObjects.

    SpawnMany(IDecorator, Int32, SpawnPolicy)

    Spawns multiple empty GameObjects from the pool or creates new ones, decorating each with the provided decorator, and applying a spawn policy to each.

    Declaration
    public GameObject[] SpawnMany(IDecorator _Decorator, int _Count, SpawnPolicy _SpawnPolicy)
    Parameters
    Type Name Description
    IDecorator _Decorator

    The decorator to apply to the spawned GameObjects.

    System.Int32 _Count

    The number of GameObjects to spawn.

    SpawnPolicy _SpawnPolicy

    The spawn policy to apply. Applied before OnSpawn.

    Returns
    Type Description
    GameObject[]

    An array of spawned GameObjects.

    SpawnMany(Int32)

    Spawns multiple empty GameObjects from the pool or creates new ones.

    Declaration
    public GameObject[] SpawnMany(int _Count)
    Parameters
    Type Name Description
    System.Int32 _Count

    The number of GameObjects to spawn.

    Returns
    Type Description
    GameObject[]

    An array of spawned GameObjects.

    SpawnMany(Int32, SpawnPolicy)

    Spawns multiple empty GameObjects from the pool or creates new ones, applying a spawn policy to each.

    Declaration
    public GameObject[] SpawnMany(int _Count, SpawnPolicy _SpawnPolicy)
    Parameters
    Type Name Description
    System.Int32 _Count

    The number of GameObjects to spawn.

    SpawnPolicy _SpawnPolicy

    The spawn policy to apply. Applied before OnSpawn.

    Returns
    Type Description
    GameObject[]

    An array of spawned GameObjects.

    SpawnMany(String, IDecorator, Int32)

    Spawns multiple GameObjects based on the blueprint name with a custom provided decorator.

    Declaration
    public GameObject[] SpawnMany(string _Blueprint, IDecorator _Decorator, int _Count)
    Parameters
    Type Name Description
    System.String _Blueprint

    The name or identifier of the blueprint to spawn.

    IDecorator _Decorator

    The decorator to apply to the spawned GameObject.

    System.Int32 _Count

    The number of GameObjects to spawn.

    Returns
    Type Description
    GameObject[]

    An array of spawned GameObjects.

    SpawnMany(String, IDecorator, Int32, SpawnPolicy)

    Spawns multiple GameObjects based on the blueprint name with a custom provided decorator, applying a spawn policy to each.

    Declaration
    public GameObject[] SpawnMany(string _Blueprint, IDecorator _Decorator, int _Count, SpawnPolicy _SpawnPolicy)
    Parameters
    Type Name Description
    System.String _Blueprint

    The name or identifier of the blueprint to spawn.

    IDecorator _Decorator

    The decorator to apply to the spawned GameObject.

    System.Int32 _Count

    The number of GameObjects to spawn.

    SpawnPolicy _SpawnPolicy

    The spawn policy to apply.

    Returns
    Type Description
    GameObject[]

    An array of spawned GameObjects.

    SpawnMany(String, Int32)

    Spawns multiple GameObjects based on the blueprint name.

    Declaration
    public GameObject[] SpawnMany(string _Blueprint, int _Count)
    Parameters
    Type Name Description
    System.String _Blueprint

    The name or identifier of the blueprint to spawn.

    System.Int32 _Count

    The number of GameObjects to spawn.

    Returns
    Type Description
    GameObject[]

    An array of spawned GameObjects.

    SpawnMany(String, Int32, SpawnPolicy)

    Spawns multiple GameObjects based on the blueprint name, applying a spawn policy to each.

    Declaration
    public GameObject[] SpawnMany(string _Blueprint, int _Count, SpawnPolicy _SpawnPolicy)
    Parameters
    Type Name Description
    System.String _Blueprint

    The name or identifier of the blueprint to spawn.

    System.Int32 _Count

    The number of GameObjects to spawn.

    SpawnPolicy _SpawnPolicy

    The spawn policy to apply. Applied before OnSpawn.

    Returns
    Type Description
    GameObject[]

    An array of spawned GameObjects.

    Implements

    IPool
    In This Article
    Back to top GuardingPearSoftware documentation