Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


Handle Game Controller input

Learn how to handle input from controllers in your application.
Read time 2 minutesLast updated 23 days ago

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:

Name

KeyCode

Axis

Ajoystick button 14joystick axis 14
Bjoystick button 13joystick axis 13
Xjoystick button 15joystick axis 15
Yjoystick button 12joystick axis 12
Left StickN/AAxis 1 (X) - Horizontal, Axis 2 (Y) - Vertical
Right StickN/AAxis 3 - Horizontal, Axis 4 - Vertical
D-pad Upjoystick button 4Basic profile only: Axis 2 (Y)
D-pad Rightjoystick button 5Basic profile only: Axis 1 (X)
D-pad Downjoystick button 6Basic profile only: Axis 2 (Y)
D-pad Leftjoystick button 7Basic profile only: Axis 1 (X)
Pausejoystick button 0N/A
L1/R1joystick button 8 / joystick button 9joystick axis 8 / joystick axis 9
L2/R2joystick button 10 / joystick button 11joystick axis 10 / joystick axis 11

Additional resources: