一般的なゲーム入力
Input for OpenVR controllers

Oculus の入力

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 CenterPairing the Oculus Touch ControllersOculus サポートセンターOculus Remote を参照してください。

Unity スクリプトコードは、ジョイスティック名のリストで Oculus Touch コントローラーの存在を定期的にチェックして、それらが使用可能であるかをテストします。Touch コントローラーの電源がオフであったり、バッテリーが切れると、UnityEngine.Input.GetJoystickNames() によって返されるリストの名前が空の文字列に変わります。Touch コントローラーの電源を再びオンにすると、その名前がリストに再表示されます。

Unity 入力システムマッピング

Oculus Remote

(Image courtesy of developer.oculus.com)
(Image courtesy of developer.oculus.com)
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

Oculus Touch コントローラー

ノート 2 つの Touch コントローラーの制御は Xbox コントローラーのものとよく似ています。そのため、Unity の Oculus Touch コントローラーマッピングは Xbox コントローラーのそれを模倣しています。

(Image courtesy of developer.oculus.com)
(Image courtesy of developer.oculus.com)
ハードウェアの機能 操作 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 右スティックを動かす
一般的なゲーム入力
Input for OpenVR controllers