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 | 右スティックを動かす |