poolコンポーネントは、オブジェクトのプーリング (opens new window)を可能にする。これにより、動的なシーンで同じ種類のエンティティを作成および破棄することを避けるために、再利用可能なエンティティのプールが提供されます。オブジェクトのプーリングは、ガベージコレクションの休止を減らすのに役立ちます。

なお、プールから要求されたエンティティはデフォルトで一時停止しており、コンポーネントのティック機能を有効にするためには .play() を呼び出す必要があります。

#

例えば、再利用したい敵のエンティティがあるゲームがあるとします。

<a-scene pool__enemy="mixin: enemy; size: 10"></a-scene>
var el = sceneEl.components.pool__enemy.requestEntity();
el.play();
sceneEl.components.pool__enemy.returnEntity(el);

# プロパティ

Property Description Default Value
container プールされたエンティティを格納するセレクタです。デフォルトはシーンです。 ''
dynamic サイズに達した後、さらにエンティティが要求された場合、プールは自動的に成長します。 false
mixin プールのエンティティを初期化するために必要なMix inです ''
size プールにあらかじめ割り当てられているエンティティの数。 0

# Methods

# .requestEntity ()

プール内の利用可能なエンティティの一つを要求します。dynamicfalseに設定され、プールを使い切った場合、undefinedが返され、警告が記録されます。

# .returnEntity (entityEl)

エンティティをプールに返却します。このプールに属していないエンティティを返そうとすると、警告が記録されます。