だいぶ期間が明いてしまいましたが、本日はHoloLens×外部コントローラーです。
HoloLensではデフォルトでXBox Controllerを接続し使用することができます。
接続方法に関しては以前の記事にまとめています。
またUnityでは[InputSystem]によってゲームパッドに共通化したコードを使用して入力を取得することができます。
〇ゲームパッドの接続確認
HoloLensの場合[XBoxController]は設定アプリで接続します。
接続した情報をUnity内で確認するためには次のコードを使用します。
if (Gamepad.current == null) { test.text = "null"; } if(Gamepad.current != null) { test.text = "OK"; }
[Gamepad.current]クラスは現在接続しているゲームパッドに相当します。
〇ボタンの取得
[InputSystem]では従来のA,B,X,Yというボタン名の取得法から東西南北(上下右左)の取得法へと変わりました。
これによってXBoxとPS4、Nintendo SwitchのJoyConなどボタン配置が異なっていても直感的に取得できるようになっています。
〇スティックの取得
今回はスティックを取得します。
スティックの取得はVector2型でVertex,Horizontalの値を取得します。
var input = Gamepad.current.leftStick.ReadValue(); if (input.magnitude > 0f) { test.text = input.ToString(); }
実機で見ると次のようになります。
Gamepad.current.leftStick.ReadValue().xが横軸の入力、右入力が1,左入力が-1、ReadValue().yが縦軸の入力で上入力が1,した入力が-1と取得できました。
次回以降で別のボタンや応用を行います。