メインコンテンツまでスキップ

PickupをSpawn対応にする

Object Spawn Systemでは、基本的に VRCPickup を持つオブジェクトをSpawn対象として使用します。

このページでは、ワールド内に配置済みのPickupを、Object Spawn Systemで扱える構成へ変更します。

必要な構成​

Spawn対象のGameObjectに、次のコンポーネントがあることを確認してください。

コンポーネント用途
VRCPickupプレイヤーがオブジェクトを持てるようにする
RigidbodyPickupの物理挙動を制御する
ColliderPickupとReturnトリガーの衝突を検出する

Pickupに必要なコンポーネントを設定したInspector

位置・回転などをプレイヤー間で同期する場合は、用途に応じた同期コンポーネントも使用してください。VRCObjectSync はその選択肢の1つですが、Object Spawn Systemの動作に必須ではありません。

1. 対象のGameObjectを確認する​

Hierarchyで、Object Spawn Systemから表示したいPickupを選択します。

標準版では、次の対象が同じGameObjectである必要があります。

  • VRCObjectPool に登録するGameObject
  • VRCPickup を持つGameObject
  • Returnトリガーへ入るColliderを持つGameObject
標準版で扱える構造

VRCPickup やReturn判定に使うColliderが子GameObjectにあるなど、上記と異なる構造のアイテムを利用したい場合は、オブジェクト スポーン拡張 をご利用ください。

2. 専用レイヤーを設定する​

Object Spawn SystemのReturn対象専用レイヤーを用意することを推奨します。

  1. UnityのLayer設定へ新しいレイヤーを追加する
  2. Spawn対象かつPickupであるGameObjectに、作成したレイヤーを設定する
  3. 必要に応じて子GameObjectにも同じレイヤーを設定する。ただし、標準版でReturn判定に使用するColliderは、VRCObjectPool に登録するGameObjectと同じGameObjectへ設定する
  4. 後で作成する ReturnObject の Layer に、同じレイヤー番号を設定する

Object Spawn SystemのReturn対象専用レイヤーを設定した状態

Layer の対応

Pickup側のGameObjectと ReturnObject の Layer には、同じレイヤー番号を設定してください。
番号が一致しない場合、PickupをReturnトリガーへ入れても非表示になりません。

準備ができたら、VRCObjectPoolを設定する へ進み、用意したGameObjectをPool配列へ登録します。