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

Object Spawn Systemの標準版では、VRCObjectPool へ登録するGameObjectと、VRCPickup およびReturn判定に使うColliderを持つGameObjectを同一にしてください。
4. 登録後の動作
Pool配列へ登録するGameObjectを、Unity上で手動で非表示にする必要はありません。VRCObjectPool に登録されたGameObjectは、ワールドの実行開始時に自動的に非表示になります。
すべてのGameObjectが表示中の場合、Spawnスイッチを操作しても新しいGameObjectは表示されません。
5. Hierarchyを整理する
同じ種類のPickupと VRCObjectPool をまとめておくと、登録内容を確認しやすくなります。
FoodPool
├─ FoodItem_01
├─ FoodItem_02
├─ FoodItem_03
├─ FoodItem_04
└─ FoodItem_05
FoodPool には VRCObjectPool を追加し、各 FoodItem_xx を Pool 配列へ登録します。
準備ができたら、Spawnスイッチを作る へ進んでください。