Unityの外部コントローラ入力の取得
Unityで外部コントローラの入力を取得する方法です
ボタン入力
OVRInput.GetUp(OVRInput.Button.One) # Aボタン OVRInput.GetUp(OVRInput.Button.Two) # Xボタン OVRInput.GetUp(OVRInput.Button.Three) # Yボタン OVRInput.GetUp(OVRInput.Button.Four) # Bボタン
- 帰り値はboolです
- ボタンを押して話した瞬間にtrueが返ってきます
- 公式のドキュメントと配置が違いますが、コントローラによって割り当てが違うのかもしれません
- ちなみに私が使っているコントローラは以下のMADCATZのコントローラです
十字キー入力
OVRInput.Get(OVRInput.Button.DpadUp) # 上キー OVRInput.Get(OVRInput.Button.DpadLeft) # 左キー OVRInput.Get(OVRInput.Button.DpadRight) # 右キー OVRInput.Get(OVRInput.Button.DpadDown) # 下キー
- 返り値はboolです
3Dスティック入力
OVRInput.GetDown (OVRInput.Button.PrimaryThumbstickUp) # 左スティックが上に倒された場合にtrue OVRInput.GetDown (OVRInput.Button.PrimaryThumbstickDown) # 左スティックが下に倒された場合にtrue OVRInput.GetDown (OVRInput.Button.PrimaryThumbstickLeft) # 左スティックが左に倒された場合にtrue OVRInput.GetDown (OVRInput.Button.PrimaryThumbstickRight) # 左スティックが右に倒された場合にtrue # UnityのInputマネージャーで設定してある場合は以下でもOK Input.GetAxis ("Vertical") # 縦軸をFloatで返す Input.GetAxis ("Horizontal") # 横軸をFloatで返す
- floatはスティックの傾きによって、-1から1までの値を返します
キーにかかわらず何かキー入力あった時に処理を行いたい場合
ボタンや十字キーなどはOVRInput.Button.Anyという何か押されたらtrueを返すメソッドがあるのですが、3Dスティックには方向に関わらずに倒されたらtrueを返すというメソッドはないようです。
なので私は以下のようにメソッドとして作ってしまっています
bool anyKeyPushed () { if (Input.anyKey || Input.GetAxis("Vertical") != 0 || Input.GetAxis("Horizontal") != 0 || OVRInput.Get(OVRInput.Button.Any)){ return true; } return false; }