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

目次

トリガーの種類について

トリガーには、PrimaySecondaryという種類があります。

  • Primary : 左手
  • Secondary : 右手

さらに、手の平に当たるトリガーと、人差し指部分のトリガーがあります。

  • Index : 人差し指
  • Hand : 手の平

ボタンの種類

Controller

トリガーの列挙プロパティ一覧

1
2
3
4
5
6
None
PrimaryIndexTrigger
PrimaryHandTrigger
SecondaryIndexTrigger
SecondaryHandTrigger
Any

ライブラリの実装

  • OVRInputクラスに実装があります。
  • 引数に、列挙型のAxis1Dを渡すと指定した入力の値float型を返してくれます。
1
2
3
4
5
6
7
8
/// <summary>
/// Gets the current state of the given virtual 1-dimensional axis mask on the given controller mask.
/// Returns the value of the largest masked axis across all masked controllers. Values range from 0 to 1.
/// </summary>
public static float Get(Axis1D virtualMask, Controller controllerMask = Controller.Active)
{
return GetResolvedAxis1D(virtualMask, RawAxis1D.None, controllerMask);
}

サンプルコード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void Update()
{
float rightIndexTrigger = OVRInput.Get(OVRInput.Axis1D.SecondaryIndexTrigger);
Debug.Log(LogKeyWord + "[右]" + "\n人差し指トリガー:" + rightIndexTrigger);

float rightHandTrigger = OVRInput.Get(OVRInput.Axis1D.SecondaryHandTrigger);
Debug.Log(LogKeyWord + "[右]" + "\n手の平のトリガー:" + rightHandTrigger);

float leftIndexTrigger = OVRInput.Get(OVRInput.Axis1D.PrimaryIndexTrigger);
Debug.Log(LogKeyWord + "[左]" + "\n人差し指トリガー:" + leftIndexTrigger);

float leftHandTrigger = OVRInput.Get(OVRInput.Axis1D.PrimaryHandTrigger);
Debug.Log(LogKeyWord + "[左]" + "\n手の平トリガー:" + leftHandTrigger);
}

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

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

Author

Daiki Iijima

Posted on

2021-07-25

Updated on

2024-04-17

Licensed under