1.方法
unityのInput.Systemを利用して入力を検出する。
2.準備
- unityにInput.Systemをインストールしておく。
unityの上部タブのWindow>PackeageManager>unity Registry>Input.Systemをインストール。
- コントローラーの入力がサポートされているものか調べる。
Window>Analysis>InputDebuggerで接続しているコントローラと入力を調べる。
使えるものであればそのまま使用できるが、そうでない場合は自分で入力の設定が必要。
くわしくは以下のリンクか、「HID」等について検索してください。
https://docs.unity3d.com/ja/Packages/com.unity.inputsystem@1.4/manual/HID.html
https://qiita.com/8ga3/items/fd8c2149465a054b5ec3#:~:text=Input%20Syst
3.ソースコード
コントローラが以下のリンクで調べたところジョイスティックとして対応していたのでジョイスティック用のプログラムで動作を確認する。
https://hardwaretester.com/gamepad
C#
1using System.Collections;
2using System.Collections.Generic;
3using UnityEngine;
4using UnityEngine.InputSystem;
5
6public class padcon : MonoBehaviour
7{
8 void Update()
9 {
10 var gamepad = Gamepad.current;
11 if (gamepad == null) return;
12
13 // ゲームパッドの左右のスティックの入力値を取得
14 var wheel = gamepad.leftStick.x.ReadValue();
15 //オブジェクトを回転させる
16 transform.Rotate(0, wheel, 0);
17 }
18}
このコードを適当なオブジェクトにつけるとハンドルの動きに合わせて回転するようになる。
4.終わり
かなり適当なので動かなかったらすみません。以下のリンクを参照してみてください。
https://docs.unity3d.com/ja/Packages/com.unity.inputsystem@1.4/manual/index.html
https://docs.unity3d.com/ja/Packages/com.unity.inputsystem@1.4/manual/Gamepad.html
fiveHundredさん教えていただきありがとうございました。