MRが楽しい

MRやVRについて学習したことを書き残す

MRTKv2.xを使ってMetaQuest3向けのUnityプロジェクト作成を行う その10(コントローラに追従するメニューを作る)

本日はMetaQuest3の技術調査枠です。
MRTKv2.xを使ってMetaQuest3向けのUnityプロジェクト作成を行う手順を記事にします。
本記事はコントローラに追従するメニューを作る方法です。

前提条件

以下の記事で作成した Unity プロジェクトを基に設定を行います。
記事その1~その4までの作業を実施済みであることが前提になります。
bluebirdofoz.hatenablog.com

コントローラに追従するメニューを作る

MRTKでは対象に追従する仕組みとしてSolverを利用できます。
ただし追従対象は Head, ControllerRay, HandJoint, CusstomOverride からの選択になるため、直接コントローラを指定できません。
learn.microsoft.com

MRTK入力システムから呼び出される入力イベントを参照することでコントローラのポーズや検出、ロストを受け取ることができます。
learn.microsoft.com

今回はMRTKの入力イベントを使ってコントローラを直接追従する以下のサンプルスクリプトを作成しました。
・MRTKMotionControllerSolverHandler.cs

スクリプトを適当なオブジェクトにアタッチし、子オブジェクトにメニュー替わりのボタンを配置しました。
動作確認のため、エディター上ではシミュレータのハンドポインターに追従するようにしています。

エディター上で動作確認すると、以下のようにボタンがハンドポインターに追跡します。

ビルドと動作確認

以下の記事を参考にプロジェクトのビルドとQuest3へのデプロイを実行してください。
bluebirdofoz.hatenablog.com

MetaQuest3でデプロイしたアプリを起動し、目の前でコントローラを動かしてみます。
以下の通り、ボタンがコントローラに追従します。