本文へスキップ

class_ObjectPool


title: class ObjectPool toc_max_heading_level: 4


class ObjectPool

(Niantic.Lightship.Maps.ObjectPools.ObjectPool)

概要

UnityのUnityObjectから派生した型に対応した汎用的なオブジェクトプール

    template <T>
class ObjectPool: IPooledObjectAccessor< T > {
public:
// メソッド

ObjectPool(
T source,
Action<T> onCreate = null,
Action<PooledObject<T>> onAcquire = null,
Action<T> onRelease = null
);

PooledObject<T> GetOrCreate();
};

詳細なドキュメント

UnityのUnityObjectから派生した型に対応した汎用的なオブジェクトプール

    パラメーター

    T - プールの派生型

メソッド

ObjectPool

ObjectPool(
T source,
Action<T> onCreate = null,
Action<PooledObject<T>> onAcquire = null,
Action<T> onRelease = null
)

コンストラクタ

    パラメーター

    source - プール内で複製されるオブジェクト。

    onCreate - 新しくインスタンス化されたオブジェクトが最初に作成されたときに呼び出されるアクション。

    onAcquire - 新しいオブジェクトや再利用されるオブジェクトが取得されたときに、それが呼び出し元に返される前に呼び出されるアクション。

    onRelease - オブジェクトが開放されたときに呼び出されるアクション。

    ArgumentNullException - ソースがNULLの場合はスローされます。

GetOrCreate

PooledObject<T> GetOrCreate()

プール内のオブジェクトを取得します(可能な場合)。 それ以外の場合は、オブジェクトの新しいインスタンスを返し、それに対してonCreate()を呼び出します。

    次の値が返ります。

    プール内のオブジェクト(可能な場合)。 それ以外の場合は、オブジェクトの新しいインスタンス。