Viveコントローラーと接触したオブジェクトの情報取得

UnityでViveコントローラーと接触したオブジェクトの情報を取得する方法を記録しておく。

UnityにはOnTriggerEnterというメソッドがあるので、ViveコントローラーのInspectorに新規スクリプトを付け、下記の内容を記述すれば良い。上手く動いていれば、オブジェクトに接触する度にログに「接触して、接触相手の名前を取得」と表示されるはず。

コントローラーが接触した相手は、otherと書くだけで呼び出すことができる点が非常に使いやすい。下のスクリプト例にある、other.gameObjectはコントローラーと接触したオブジェクトのことなので、grabedByControllerにコントローラーと接触したオブジェクトが代入される。other.gameObjectの後に、.nameとか.transform.positionを付ければ、接触したオブジェクトの名前や座標を取得することも簡単にできる。

なお、このメソッドを使用する際の注意点として、コントローラーと接触相手のオブジェクトのInspector設定がある。このメソッドが呼ばれる条件として、コントローラーか接触相手の少なくとも一方にrigidbodyが付けられていなければならない。また、両方にcolliderの設定もされていなければならない。(反対に、ステージに複数のオブジェクトがあり、接触時に情報取得したくないものがあればcollider設定を外しておけば良い)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です