概要
この記事では、VRChatのUdon/SDK3ワールドでPickup可能オブジェクトを作る方法をまとめています。
何度か仕様変更があったようで、古いやり方しかWebに載っていない場合が多かったため、最新のやり方を書きました。
Pickup可能オブジェクトの作り方
ローカル版(非同期)とグローバル版(同期)の作り方を解説します。
ローカル版(非同期)
- Pickup可能オブジェクトにしたいGameObjectに「Udon Behavior」コンポーネントを追加する。そのProgram Sourceに「Empty」を指定する。これはVRCSDK3に初めから同梱されている「何もしない」コードです。
- Colliderがない場合は、なんらかのColliderを追加してIs Triggerにチェックをつける。
- 「VRC Pickup」コンポーネントを追加する。
- (物理が無くて宙に浮くオブジェクトにする場合)同時に追加される「Rigidbody」コンポーネント項目にてUse Gravityのチェックを外し、Is Kinematicにチェックをつける。
- (物理法則に従い落下するオブジェクトにする場合)「Rigidbody」コンポーネント項目にてUse Gravityのチェックをつけ、Is Kinematicのチェックを外す。
- Layerを「Pickup」に指定する。
グローバル版(同期)
ローカル版と同じように作成した後、「VRC Object Sync」を追加する。
他のプレイヤーからオブジェクトを奪い取れるようにしたい場合は、「Allow Collision Ownership Transfer」にチェックをつける。
以上