Version: 2023.1
言語: 日本語
ゲームコントローラーの検出
Unity's Device Simulator for iOS

ゲームコントローラーの入力処理

入力スキームは、開発しているアプリケーションの種類に依存します。Unity の Input Manager 設定で特定のアクションを設定できます。デフォルトでは、Unity Input Horizontal (並行) 軸はゲームコントローラの D パッドにマップされ、左のアナログスティックは拡張プロファイルコントローラにマップされます。特定のコントローラーのボタンに対応する KeyCode と軸については、入力のマッピング を参照してください。

例: ジョイスティックボタン A を Jump (ジャンプ) アクションに設定する

  1. Edit > Project Settings を開きます。
  2. Input Manager カテゴリーを選択します。
  3. Jumpアクションを開く。
  4. Positive Buttonjoystick button 14 に設定します。

このコード例は、対応する入力処理を示しています。

using UnityEngine;

public class Jumping : MonoBehaviour
{
    Rigidbody2D rb;
    float jumpForce = 100f;

    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
    }

    void Update()
    {
        if (Input.GetButtonDown("Jump"))
        {
            rb.AddForce(new Vector2(0f, jumpForce));
        }
    }
}

例: ジョイスティックボタン X を Fire (発射) に設定する

  1. Edit > Project Settings を開きます。
  2. Input Manager カテゴリーを選択します。
  3. Fire1 アクションを開きます。
  4. Positive Buttonjoystick button 15 に設定します。

このコード例は、対応する入力処理を示しています。

using UnityEngine;
 
public class Shooting : MonoBehaviour
{
    float bulletSpeed = 500f;
    public Transform gun;
    public Rigidbody2D bullet;
 
    void Update()
    {
        if (Input.GetButtonDown("Fire1"))
        {
            var bulletInstance = Instantiate(bullet, gun.position, gun.rotation);
            bulletInstance.AddForce(gun.up * bulletSpeed);
        }
    }
}

ゲームコントローラーの入力のマッピング

Unity Input 設定で、以下を使ってコントローラー入力のマッピングを行えます。

名前 キーコード
A joystick button 14 joystick axis 14
B joystick button 13 joystick axis 13
X joystick button 15 joystick axis 15
Y joystick button 12 joystick axis 12
Left Stick 該当なし Axis 1 (X) - Horizontal、Axis 2 (Y) - Vertical
Right Stick 該当なし Axis 3 - Horizontal、Axis 4 - Vertical
D-pad Up joystick button 4 Basic profile only: Axis 2 (Y)
D-pad Right joystick button 5 Basic profile only: Axis 1 (X)
D-pad Down joystick button 6 Basic profile only: Axis 2 (Y)
D-pad Left joystick button 7 Basic profile only: Axis 1 (X)
Pause joystick button 0 該当なし
L1/R1 joystick button 8 / joystick button 9 joystick axis 8 / joystick axis 9
L2/R2 joystick button 10 / joystick button 11 joystick axis 10 / joystick axis 11

その他の参考資料

ゲームコントローラーの検出
Unity's Device Simulator for iOS