VRCObjectPoolを設定する
VRCObjectPool とは
VRCObjectPool は、VRChat SDKが提供するコンポーネントです。複数のGameObjectを配列で管理し、それぞれの表示状態をプレイヤー間で同期します。
Object Spawn Extensionでは、この仕組みを利用してSpawn対象の表示・非表示を管理します。
1. 必要な数だけGameObjectを用意する
同時に表示できる最大数だけ、PickupのGameObjectをシーン内に用意します。
たとえば、同じ料理を最大5個まで表示したい場合は、同じ設定のPickupを5個用意します。
2. VRCObjectPool を追加する
- Hierarchyに空のGameObjectを追加する
- GameObjectへ
VRCObjectPoolコンポーネントを追加する - 分かりやすい名前へ変更する
3. Spawn対象を登録する
作成した VRCObjectPool の Pool 配列へ、用意したGameObjectを登録します。
Inspector右上の鍵で VRCObjectPool を表示したままロックし、Hierarchyで複数選択したGameObjectを Pool へドラッグ&ドロップすると、まとめて登録できます。

単純な構造のPickupでは、VRCObjectPool へ登録するGameObjectと、VRCPickup およびReturn判定に使うColliderを持つGameObjectを同一にしてください。
Pickupが子階層にある場合は、CompSpawnHelper または HGSpawnHelper を設定したのち、アイテム全体のルートを登録します。ヘルパーの設定については 複雑なPickupを設定する または へのごはん様製アイテムを設定する を確認してください。
4. 登録後の動作
Pool配列へ登録するGameObjectを、Unity上で手動で非表示にする必要はありません。VRCObjectPool に登録されたGameObjectは、ワールドの実行開始時に自動的に非表示になります。
すべてのGameObjectが表示中の場合、Spawnスイッチを操作しても新しいGameObjectは表示されません。
5. Hierarchyを整理する
PoolとSpawn対象を、用途ごとにまとめておくことを推奨します。
ObjectSpawnPools
└─ FoodPool
├─ FoodItem_01
├─ FoodItem_02
└─ FoodItem_03
FoodPool に VRCObjectPool を追加し、各アイテムのGameObjectを Pool 配列へ登録します。Pickupが子階層にある場合は、各アイテム全体のルートGameObjectを登録してください。

準備ができたら、SpawnObjectExt でSpawnスイッチを作る へ進みます。