Version: 2022.3
Detect Game Controllers
Simulate an iOS device

Handle Game Controller input

The input scheme is dependent on the type of application you are developing. You can set up specific actions in Unity’s Input Manager settings. By default, the Unity Input Horizontal axis is mapped to the game controller D-pad and the left analog stick is mapped to extended profile controllers. See Input mapping for the KeyCodes and Axes that correspond to specific controller buttons.

Example: Set up joystick button A for the Jump action

  1. Go to Edit > Project Settings.
  2. Select the Input Manager category.
  3. Open the Jump action.
  4. Set Positive Button to joystick button 14.

This code example demonstrates the corresponding input handling:

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));
        }
    }
}

Example: Set up joystick button X for the Fire action

  1. Go to Edit > Project Settings.
  2. Select the Input Manager category.
  3. Open the Fire1 action.
  4. Set Positive Button to joystick button 15.

This code example demonstrates the corresponding input handling:

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);
        }
    }
}

Game Controller input mapping

You can map controller input in the Unity Input settings using the following:

名称 KeyCode Axis
A 游戏杆按钮 14 游戏杆轴 14
B 游戏杆按钮 13 游戏杆轴 13
X 游戏杆按钮 15 游戏杆轴 15
游戏杆按钮 12 游戏杆轴 12
左摇杆 轴 1 (X) - 水平,轴 2 (Y) - 垂直
右摇杆 轴 3 - 水平,轴 4 - 垂直
向上方向键 游戏杆按钮 4 仅限基本配置:轴 2 (Y)
向右方向键 游戏杆按钮 5 仅限基本配置:轴 1 (X)
向下方向键 游戏杆按钮 6 仅限基本配置:轴 2 (Y)
向左方向键 游戏杆按钮 7 仅限基本配置:轴 1 (X)
暂停 游戏杆按钮 0
L1/R1 游戏杆按钮 8/游戏杆按钮 9 游戏杆轴 8/游戏杆轴 9
L2/R2 游戏杆按钮 10/游戏杆按钮 11 游戏杆轴 10/游戏杆轴 11

Additional resources:

Detect Game Controllers
Simulate an iOS device