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
51
Help us understand the problem. What is going on with this article?
@r-kgy

Oculus Goのコントローラ入力の取得まとめ

More than 1 year has passed since last update.

Oculus Goを買ってUnityデビューをしました。
色々とチュートリアルをやって、それをOculus Goに対応させて遊んでるのですが、一番手間取るのはコントローラのアクションの取得です。
ここらへんはOculus Goでアプリで作る際は欠かせないと思いますので、備忘録的にまとめていこうと思います。

Prefabを使ってコントローラーを表示する必要があるのですが、その方法は以下の記事を見て頂ければと思います。
Oculus Goのコントローラーを表示させる

追記

2018/7/18 バックボタンの取得方法の修正とホームボタン長押しを追加しました。

コントローラ入力の取得

バックボタン

Input.GetKeyDown(KeyCode.Escape)
// or
OVRInput.Get(OVRInput.RawButton.Back)

ホームボタン長押し

OVRInput.GetControllerWasRecentered()

トリガー

// トリガー押した時
OVRInput.GetDown(OVRInput.Button.PrimaryIndexTrigger)

// トリガー離した時
OVRInput.GetUp(OVRInput.Button.PrimaryIndexTrigger)),

どちらの手で持っているか

var activeController = OVRInput.GetActiveController();
if (activeController == OVRInput.Controller.LTrackedRemote)
{
    // 左
}
else if (activeController == OVRInput.Controller.RTrackedRemote)
{
    // 右
}

タッチパッド

クリック

OVRInput.Get(OVRInput.Button.PrimaryTouchpad)

スクロールの取得

// Up方向
OVRInput.Get(OVRInput.Button.Up)

// Down方向
OVRInput.Get(OVRInput.Button.Down)

// Left方向
OVRInput.Get(OVRInput.Button.Left)

// Right方向
OVRInput.Get(OVRInput.Button.Right)

位置の取得

Vector2 touchPadPt = OVRInput.Get(OVRInput.Axis2D.PrimaryTouchpad);

if (touchPadPt.x > 0.5 && -0.5 < touchPadPt.y && touchPadPt.y< 0.5) 
{
    //右方向
}
if (touchPadPt.x< -0.5 && -0.5 < touchPadPt.y && touchPadPt.y< 0.5) 
{
    //左方向
}
if (touchPadPt.y > 0.5 && -0.5 < touchPadPt.x && touchPadPt.x< 0.5) 
{
    //上方向
}
if (touchPadPt.y< -0.5 && -0.5 < touchPadPt.x && touchPadPt.x< 0.5) 
{
    //下方向
}

ここで紹介した方法で位置を取得して移動が出来るようにしました。
Oculus Goで大自然をかけまわってみる

まとめ

今はここまでですが、情報はこれから追記していきます。
Oculusのコントローラのサンプルアプリを動かしながら色々と試してるのですが、思ったより多くの入力が取れることにびっくりしています。

上手く使えれば面白いことができそうです。
とりあえずOculus Goはすごい。

参考情報

追記

何か間違い等ございましたら、ご指摘お願いします。

51
Help us understand the problem. What is going on with this article?
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
r-kgy

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
51
Help us understand the problem. What is going on with this article?