Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

【Unity】Oculus Questのコントローラ入力の取得方法まとめ

More than 1 year has passed since last update.

はじめに

この記事は、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)で公開してます。
※使用は自己責任でお願いします。

KanataNao
ゲーム開発を行っています。
https://kanatanao.tumblr.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away