VRTK Ver3.2.0でのポインタと移動を使う
UnityでSteamVRを使う上であれば便利なアセット「VRTK(Virtual Reality Toolkit)」のVer3.2.0でポインタを使った移動方法についてのまとめです。
VRTKのちょっと前のバージョンくらいから、ポインタの使い方が変わっているので、主にそれの解説となります。(今でも昔の方法で一応使えるみたいだけど)
ここで言う「ポインタ」は、コントローラから出てくる例のアレです。
事前に、以下の記事の方法でVRTKの基本設定をしましょう。
takoyakiroom.hatenablog.com
コントローラからレーザを発射させる
コントローラ用として作った空のオブジェクトに、VRTK→Scripts→Ineteractionsの「VRTK_ControllerEvents」と、VRTK→Scripts→Pointersの「VRTK_Pointer」と、VRTK→Scripts→Pointers→PointerRenderersの「VRTK_StraightPointerRenderer」の3つをくっつけます。
「VRTK_Pointer」の「PointerRenderer」に、コントローラのオブジェクトを設定。
これで、コントローラのオブジェクトに設定されていた「VRTK_StraightPointerRenderer」がポインタの表示に使われるようになります。
んで、コントローラのオブジェクトを「VRTK_SDKManager」の「ScriptAliases」に設定します。
とりあえずポインタを表示させるだけなら、これだけ。
右のコントローラにも同じ設定をしてあげれば、左右のコントローラからレーザー射出!
「VRTK_StraightPointerRenderer」の代わりに「VRTK_BezierPointerRenderer」を使えば、ベジェ曲線のポインタになります。
「ベジェ曲線だっせー!」とお嘆きのあなたは、サンプルの「036_Controller_CustomCompoundPointer」を参考にカスタマイズしてください。
ポインタで移動
ポインタで指した先に移動する方法ですが、VRTK→Scripts→Locomotionの「VRTK_BasicTeleport」を適当なオブジェクトに追加するだけです。
とりあえず「PlayArea」って空のオブジェクトを作って、ここに設定しときます。
「VRTK_BasicTeleport」の代わりに「VRTK_DashTeleport」・「VRTK_HeightAdjustTeleport」とかも使え、移動方法が異なります。
それぞれの挙動はそれっぽい名前のサンプルがあるので、動かしてみてください。