【Unity】【Oculus Quest2】コントローラーボタンのイベント取得

目次

ボタンの種類の判定について

ボタンを指定する列挙型は2種類用意されています。

  1. OVRInput.Button : いろいろなボタンに対応できる抽象的なボタンを列挙してあります。
  2. OVRInput.RawButton : いろいろなボタンに対応できる

公式のドキュメントでは、仮想マッピングを使用することをおすすめしてありました。

ボタンの種類

Controller

Buttonの列挙プロパティ一覧

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
None
One
Two
Three
Four
Start
Back
PrimaryShoulder
PrimaryIndexTrigger
PrimaryHandTrigger
PrimaryThumbstick
PrimaryThumbstickUp
PrimaryThumbstickDown
PrimaryThumbstickLeft
PrimaryThumbstickRight
PrimaryTouchpad
SecondaryShoulder
SecondaryIndexTrigger
SecondaryHandTrigger
SecondaryThumbstick
SecondaryThumbstickUp
SecondaryThumbstickDown
SecondaryThumbstickLeft
SecondaryThumbstickRight
SecondaryTouchpad
DpadUp
DpadDown
DpadLeft
DpadRight
Up
Down
Left
Right
Any

ライブラリの実装部分

  • OVRInputクラスに実装があります。
  • 引数に、列挙型のButtonを渡すと指定したボタンが押されていれば、true押されていなければ、falseを返します。
1
2
3
4
5
6
7
8
/// <summary>
/// Gets the current state of the given virtual button mask with the given controller mask.
/// Returns true if any masked button is down on any masked controller.
/// </summary>
public static bool Get(Button virtualMask, Controller controllerMask = Controller.Active)
{
return GetResolvedButton(virtualMask, RawButton.None, controllerMask);
}

スティックや、背面とサイドのTouchグリップボタンは、より詳細なイベントをとることができるので以下の記事を参考にしてみてください。

ボタン押下

OVRInput静的クラス経由で、コントローラーボタンのインプットイベントを検出できます。

ボタンのイベントに関しては、戻り値はbooltruefalseが返ってきます。

ボタンを押している間ずっとtrueになる

1
OVRInput.Get(取得したいボタン)

ボタンを押したときに1度だけtrueになる

1
OVRInput.GetDown(取得したいボタン)

ボタンが押され終わったときに1度だけtrueになる

1
OVRInput.GetUp(取得したいボタン)

使用サンプル

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private void Update()
{
if(OVRInput.Get(OVRInput.Button.One))
{
Debug.Log("Aボタンを押しています");
}

if(OVRInput.GetDown(OVRInput.Button.One))
{
Debug.Log("Aボタンを押しました");
}

if(OVRInput.GetUp(OVRInput.Button.One))
{
Debug.Log("Aボタンを離しました");
}
}

【Unity】【Oculus Quest2】コントローラーボタンのイベント取得

https://blog.djima.net/2021/07/23/【Unity】【Oculus-Quest2】コントローラーボタンのイベント取得/

Author

Daiki Iijima

Posted on

2021-07-23

Updated on

2024-02-27

Licensed under