pool
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 ()
プール内の利用可能なエンティティの一つを要求します。dynamic
がfalse
に設定され、プールを使い切った場合、undefined
が返され、警告が記録されます。
# .returnEntity (entityEl)
エンティティをプールに返却します。このプールに属していないエンティティを返そうとすると、警告が記録されます。