🥽

Oculus QuestでuGUIを操作する

に公開

はじめに

基本的にはOculusGoなどと同じですが、少し情報が古くなっているので、2019.06時点での情報を記して置きます。

Oculus Go 開発メモ - uGUI編 - Qiita
https://qiita.com/JunSuzukiJapan/items/bead777e8dfeaa49ea30

今回はSampleFrameworkのプレハブを使って最小限の手順を紹介します。

関連: OculusのSampleFramework全シーンをQuest実機で動かしてみた【Unity】 - Qiita

環境

  • Unity 2018.3.14f1
  • Oculus Integration for Unity - 1.37
    • Oculus Utilities Plugin 1.32.0
  • Mac OSX 10.14.4(18E226)

手順

0.前提

  • Oculus Integrationsがインポート済み
  • 組み込むシーンにOVRCameraRigが存在している

1. 操作される側(Canvas)の設定

Assets>Oculus>VR>ScenesのUIシーンにあるLightCanvasをコピーして持ってくるのが早いと思います。余計なスクリプトついてないので、改変しやすいです。

デフォルト値からの差分としては以下の通りです。

2. 操作する側(EventSystem, LaserPointer)の設定

Assets>Oculus/SampleFramework/Core/DebugUI/Prefab内のUIHelpersとうPrefabに全部まとまっています。初めに挙げた記事などではインスペクター上での設定をしていますが、このPrefabはシーンに配置するだけですぐに動作します(デフォルトで右手からRayを飛ばす設定)。

Prefabの中には3つのGameObjectが入っています。

  • EventSystem
    • Standalone Input Moduleの代わりにOVR Input Moduleがアタッチされている
    • Ray Transform(Rayを飛ばす原点)はUIHelpersについているHandedInputSelectorが上書きする設定になっているため、必要であれば書き換える
  • LaserPointer
    • OVRCursorを継承したクラスを持ち、OVR Input Moduleから参照されている
    • CursorVirualでカーソルとして使用するオブジェクトを指定可能
    • カーソルまでの線を描画したい場合はLine Rendererをenableにする
  • Sphere
    • LaserPointerでCursor表示用に参照されている

最後に

プレハブ2つをコピーしてくるだけで動きました。
それぞれシンプルな作りなので、ここから必要に応じて変更を加える形が分かりやすいと思います。

Discussion