Oculus Rift には 3 つの入力があります。Oculus Touch コントローラー 2 つと Oculus Remote です。ネイティブの Unity エディターが Oculus Rift の入力用ハードウェアをサポートするために、Unity の VR サブシステムはこれらの 3 つの入力にそれぞれ別のジョイスティックを使います。 UnityEngine.Input クラスを使用して、これらの入力の軸とボタンの値を読み取ります。
適切に設定され、オペレーティングシステムに接続されると、Oculus Touch コントローラーは UnityEngine.Input.GetJoystickNames() によって返されるリストに Oculus Touch - Left および Oculus Touch - Right と表示され、Oculus Remote は Oculus Remote と表示されます。Touch コントローラーと Remote を正しく設定する方法や接続する方法については、 Oculus Developer Center の Pairing the Oculus Touch Controllers と Oculus サポートセンター の Oculus Remote を参照してください。
Unity スクリプトコードは、ジョイスティック名のリストで Oculus Touch コントローラーの存在を定期的にチェックして、それらが使用可能であるかをテストします。Touch コントローラーの電源がオフであったり、バッテリーが切れると、UnityEngine.Input.GetJoystickNames() によって返されるリストの名前が空の文字列に変わります。Touch コントローラーの電源を再びオンにすると、その名前がリストに再表示されます。
Hardware Feature | Unity Button ID | Unity Axis ID | Unity Axis Value when Pressed | Xbox Controller Analogue |
---|---|---|---|---|
Button.DpadUp | - | 6 | 1.0 | D-Pad Up |
Button.DpadDown | - | 6 | –1.0 | D-Pad Down |
Button.DpadLeft | - | 5 | –1.0 | D-Pad Left |
Button.DpadRight | - | 5 | 1.0 | D-Pad Right |
Button.One | 0 | - | - | A Button |
Button.Two | 1 | - | - | B Button |
ノート 2 つの Touch コントローラーの制御は Xbox コントローラーのものとよく似ています。そのため、Unity の Oculus Touch コントローラーマッピングは Xbox コントローラーのそれを模倣しています。
ハードウェアの機能 | 操作 | Unity Button ID | Unity Axis ID | Unity Axis 範囲 | Xbox コントローラーアナログ |
---|---|---|---|---|---|
Button.One | 押す | 0 | 。 | 。 | A ボタン |
Button.One | ##タッチ | 10 | 。 | 。 | 。 |
Button.Two | 押す | 1 | 。 | 。 | B ボタン |
Button.Two | ##タッチ | 11 | 。 | 。 | 。 |
Button.Three | 押す | 2 | 。 | 。 | X ボタン |
Button.Three | ##タッチ | 12 | 。 | 。 | 。 |
Button.Four | 押す | 3 | 。 | 。 | Y ボタン |
Button.Four | ##タッチ | 13 | 。 | 。 | 。 |
Button.Start | 押す | 7 | 。 | 。 | Start ボタン |
Button.PrimaryThumbstick | 押す | 8 | 。 | 。 | 左スティック 押下 |
Button.PrimaryThumbstick | ##タッチ | 16 | 。 | 。 | 。 |
Button.PrimaryThumbstick | 接近 | 。 | 15 | 接近が検知されるとき 1.0。そうでない場合 0.0 | 。 |
Button.SecondaryThumbstick | 押す | 9 | 。 | 。 | 右スティック 押下 |
Button.SecondaryThumbstick | ##タッチ | 17 | 。 | 。 | 。 |
Button.SecondaryThumbstick | 接近 | 。 | 16 | 接近が検知されるとき 1.0。そうでない場合 0.0 | 。 |
Touch.PrimaryThumbRest | ##タッチ | 18 | 。 | 。 | 。 |
Touch.PrimaryThumbRest | 接近 | 。 | 15 | 接近が検知されるとき 1.0。そうでない場合 0.0 | 。 |
Touch.SecondaryThumbRest | ##タッチ | 19 | 。 | 。 | 。 |
Touch.SecondaryThumbRest | 接近 | 。 | 16 | 接近が検知されるとき 1.0。そうでない場合 0.0 | 。 |
Axis1D.PrimaryIndexTrigger | ##タッチ | 14 | 。 | 。 | 。 |
Axis1D.PrimaryIndexTrigger | 接近 | 。 | 13 | 接近が検知されるとき 1.0。そうでない場合 0.0 | 。 |
Axis1D.PrimaryIndexTrigger | 握る | 。 | 9 | 0.0 から 1.0 | 左トリガーを握る |
Axis1D.SecondaryIndexTrigger | ##タッチ | 15 | 。 | 。 | 。 |
Axis1D.SecondaryIndexTrigger | 接近 | 。 | 14 | 接近が検知されるとき 1.0。そうでない場合 0.0 | 。 |
Axis1D.SecondaryIndexTrigger | 握る | 。 | 10 | 0.0 から 1.0 | 右トリガーを握る |
Axis1D.PrimaryHandTrigger | 握る | 。 | 11 | 0.0 から 1.0 | 。 |
Axis1D.SecondaryHandTrigger | 握る | 。 | 12 | 0.0 から 1.0 | 。 |
Axis2D.PrimaryThumbstick | 水平移動 | 。 | 1 | –1.0 から 1.0 | 左スティックを動かす |
Axis2D.PrimaryThumbstick | 垂直移動 | 。 | 2 | –1.0 から 1.0 | 左スティックを動かす |
Axis2D.SecondaryThumbstick | 水平移動 | 。 | 4 | –1.0 から 1.0 | 右スティックを動かす |
Axis2D.SecondaryThumbstick | 垂直移動 | 。 | 5 | –1.0 から 1.0 | 右スティックを動かす |