夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

HoloLenxでXboxコントローラーを使用する スティック入力の取得

だいぶ期間が明いてしまいましたが、本日はHoloLens×外部コントローラーです。

HoloLensではデフォルトでXBox Controllerを接続し使用することができます。

接続方法に関しては以前の記事にまとめています。

redhologerbera.hatenablog.com

また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というボタン名の取得法から東西南北(上下右左)の取得法へと変わりました。

これによってXBoxPS4Nintendo SwitchのJoyConなどボタン配置が異なっていても直感的に取得できるようになっています。

redhologerbera.hatenablog.com

〇スティックの取得

今回はスティックを取得します。

スティックの取得はVector2型でVertex,Horizontalの値を取得します。

        var input = Gamepad.current.leftStick.ReadValue();
        if (input.magnitude > 0f) {
            test.text = input.ToString();
        }

実機で見ると次のようになります。

youtu.be

Gamepad.current.leftStick.ReadValue().xが横軸の入力、右入力が1,左入力が-1、ReadValue().yが縦軸の入力で上入力が1,した入力が-1と取得できました。

次回以降で別のボタンや応用を行います。