Help us understand the problem. What is going on with this article?

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はすごい。

参考情報

http://bibinbaleo.hatenablog.com/entry/2018/05/14/171744

追記

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

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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした