Oculus QuestでのVRアプリ制作にハマッています。いろんな意味で。
本日は衝突判定について、新たに知ることができたネタをご紹介します。
基本中の基本かも知れないけど。Oculus関係ないけど。
Oculus IntegrationのOVRGrabber
Oculus Integrationでは、手のアバターで物体をつかめるようにする機能が用意されています。それが掲題のOVRGrabberです。
これを手のオブジェクトにアタッチするわけなのですが、詳細な使い方はまた今度ご紹介するとして。

このスクリプトをアタッチしたオブジェクトには、ご覧の通りColliderはアタッチされていません。Rigidbodyはありますけど。
では、コードを見てみましょう。
コード内では、OnTriggerEnterとOnTriggerExitが実装されています。
あれれ、Colliderを持っていないのにどうしてコールされるんだ??
親オブジェクトがRigidbodyを持つ場合、子オブジェクトの衝突も検知できる
ということらしい。
ためしにColliderなしのCubeを2個配置します。
それぞれに子オブジェクトを作成し、そちらにBoxColliderをアタッチして実験してみました。

親にRigidbodyなし版。衝突してない感じ。

親にRigidbodyあり版。衝突しています!!
結論
- 親オブジェクトにRigidbodyを付けることで、子オブジェクトの衝突を検知できる
- Oculusハマる。いろんな意味で。
↑↑↑ ぜひ遊んでみてください!↑↑↑