MRTKはMeta Quest 2に対応しているため、HoloLens 2のプロジェクトをほぼそのまま移植することができます。
また、MRTKはUI/UXコンポーネントが充実しているため、Oculus Integrationを直接使用しないで、MRTKで作成した方が効率がいい場合もあります。
MRKTでQuest 2を使用するには下記の公式マニュアルが詳しいのでご覧ください。
ただ1点、Oculus IntegrationはUPMに対応しておらず、ファイル数が非常に多いため扱いにくいアセットです。なので、アバターなどを使用せず、基本的な機能だけで問題ないのなら、Oculus Integrationの「VR」フォルダのみをインポートすると時間の節約になります。
上記設定で、MRTKのコンポーネントはそのまま使用でき、移動もVRのテレポート移動が標準で使用できます。
これに加えて、Quest 2のコントローラについているボタンを利用して何かインタラクションしたい場合の設定です。
まず、MixedRealityToolkitのプロファイルを複製して編集できる状態にします。
Quest 2の場合は「DefaultMixedRealityConfigurationProfile」が使用されているはずですので、これをcloneします。
更に、その配下にある「DefaultMixedRealityInputSystemProfile」もcloneします。
Input ActionsのところでAdd a New Actionを選択して、何かAction名を入力し、ボタンなのでDigitalを選択します。
※今回は説明のためAction名を「Button_Two_Press」としましたが本当はボタン名からは独立した抽象化された名称にするのが正しいです
これでActionが追加されたので、ボタンに割り当てます。
「DefaultMixedRealityControllerMappingProfile」をcloneして、Oculus Touch Right/Left Hand Controllerの設定を開きます。
先ほど追加したActionを、割り当てたいボタンのプルダウンで選択します。
任意のAction(MixedRealityInputAction)を受け取るには、InputActionHandlerを使用すると便利です。
シーン上の何かのオブジェクトに、InputActionHandlerをアタッチします。
Is Focus Requiredをoffにして、Input Actionで先ほど作成した「Button_Two_Press」を選択します。
これでボタンを押した時(On Input Action Started)、離した時(On Input Action Ended)に実行するメソッドをインスペクタから設定できます。
この状態で、Unity Editor上で確認する方法です。
Player Settings>XR Plugin ManagementのStandaloneのところで、XR SDKとしてOculusを選択します。
この設定を有効にするために、Switch PlatformでStandaloneに変更します。
そして、Meta Quest 2側で、Oculus Linkを有効にします。
これで、Unity EditorからはOculus RiftとしてQuest 2が使用でき、コントローラのボタンも反応します。
デバッグが終わったら、Quest 2用にビルドして実機でお試しください!