はじめに
この記事は、OculusQuestのコントローラ入力の取得方法についての記事です。
OculusQuestのセットアップなどは他の人が記事でまとめているので参考にしてください。
筆者が参考にした記事はこちら([Unity] Oculus Questで3Dキャラクターを眺めよう)
OculusQuestのコントローラ入力の取得方法
Oculus系のコントローラ入力は、基本的にOVRInputを用いて取得します。公式リファレンスを参考にまとめました。
公式リファレンスのURL:https://developer.oculus.com/documentation/unity/latest/concepts/unity-ovrinput/
入力可能な値
OculusQuestはOculus Touchコントローラを使用します。
入力として取れるものは以下の通りです。
- OVRInput.Button:ボタンを押しているかどうか(bool型)
- OVRInput.Touch:ボタンが指に触れているかどうか(bool型)
- OVRInput.Axis1D:トリガなどをどれくらい引いているか(float型)
- OVRInput.Axis2D:3Dスティックなどをどの方向に押しているか(Vector2型)
ここですごいのがOVRInput.Touch、ボタンを押さずに指が触れているだけで検知されます。
入力の取得方法
コントローラ入力の取得にはOVRInput.Get()を使用します。例えば、「Aボタンを押しているかどうか」取りたい場合は、
OVRInput.Get(OVRInput.Button.One))
を記述することで押していればTrue、押していなければFalseが返ってきます。
ほかにも、押された瞬間を取りたいときはOVRInput.GetDown()を、離した瞬間を取りたいときはOVRInput.GetUp()を使用すれば取れます(SteamVR Ver1.#で同じような関数を使用していたのでかなり使いやすく感じました)。
さいごに
詳細は公式リファレンスを参考にしてください。
参考
Oculus Questで入力全てを確認できるサンプルコードはGitHub(https://github.com/NaoKanata/OculusQuestControllerInputManager)で公開してます。
※使用は自己責任でお願いします。