Facebook

Unity Input System: Input.GetAxis

by Liam Cubicle Published January 25, 2024
The cover for Unity Input System: Input.GetAxis

In this article, we’ll talk about another major method in Unity’s Input class – the GetAxis method. This is an essential method if you want to accept player input for your game. As a developer, you must be comfortable using Unity’s input APIs to accept and respond to player input in order to create interactive games.

What method do I use to get the virtual axis?

You will use the Input.GetAxis method to retrieve the value of a virtual axis in Unity. This is an essential method in the Input class. Remember to normalize player input.

📄 Resources:

What is a virtual axis in Unity?

A virtual axis is a property that enables you to accept input from an input device in your project. Keyboards, mice, joysticks, and touch screens are all examples of input devices. Each project in Unity has several input axes by default. The axis values can be 1 or -1 for the joystick and keyboards. However, the axis values for a mouse can be greater than 1 and smaller than -1 if the user moves the mouse quickly. The neutral position is always 0.

📄 Resources:

How do I configure a virtual axis?

You can configure a virtual axis names in the Input Manager. To open the Input Manager window, follow these steps:

  1. In your menu bar, click Edit > Project Settings.
  2. In the Project Settings window, click Input Manager in the side pane.

How to add a virtual axis in Unity?

To add a virtual axis in Unity, you just have to increase the value of the Size field in your Input Manager. The new axis will automatically inherit the properties of the previous axis in the list.

How to remove a virtual axis in Unity?

To remove a virtual axis, follow these steps:

  1. In your Input Manager, right click on the axis you want to delete.
  2. Click Delete Array Element to remove that virtual axis.

Alternatively, you can decrease the value of the Size field in the Input Manager. However, note that decreasing this value will remove the last element from the list, which may not be the axis you intend to remove.

How to copy a virtual axis in Unity?

To Copy a virtual axis, follow these steps:

  1. In your Input Manager, right click the axis you want to copy.
  2. Click Duplicate Array Element to copy that virtual axis.

How to map a virtual axis to a control?

To Map a virtual axis to a control, enter its name in the Positive Button or Negative Button property. You can find that in the Input Manager.

How to use the Input.GetAxis method in Unity?

You can use the get axis method to access virtual axes from scripts using the axis name. Here’s an example:

float horizontalInput = Input.GetAxis("Horizontal")

The above code queries the current value of the Horizontal axis and stores it in a variable.

float verticalInput = Input.GetAxis("Vertical")

The above code queries the current value of the Vertical axis and stores it in a variable.

What if more than one axis has the same name?

If more than one axes have the same name, the query returns the axis with the largest absolute value. This enables you to assign more than one input device to an axis name.

How do I customize input axis names?

You can customize input axis names in the Input Manager. This can be found on your Project Settings tab in the Edit tab.

How to use the input obtained from the GetAxis method?

After querying the value of an axis and storing it in a variable, what’s the variable used for?

You can use the `transform.Translate` method in conjunction with the input from the Horizontal and Vertical axes to move a GameObject forward, back, left, or right.

Here’s an example:

transform.Translate(new Vector3(horizontalInput, verticalInput, 0) * moveSpeed * Time.deltaTime);

In this example, we use `Time.deltaTime` to ensure that the GameObject moves at a consistent rate over time, regardless of the game’s frame rate.

Apart from the transform.Translate method of the transform class, you can also use the transform.Rotate method to rotate a GameObject about a particular axis.

Here is an example:

transform.Rotate(0, horizontalInput * Time.deltaTime, 0);

The above code rotates the GameObject around the y-axis.

📄 Resources:

Conclusion

You are now an expert in using the Input.GetAxis method. With this guide, you can create, edit, and delete virtual axes in your project. Moreover, you can use the virtual axis to accept and respond to player input. Nice.

Free download: Indie Game Marketing Checklist

Download now

Category

character controllers and input

Don't forget to share this post!

Popular assets for Unity

See all assets ->
    Cutting-edge volumetric fog and volumetric lighting with support for transparent materials.
    Volumetric clouds, day night cycles, dynamic skies, global lighting, weather effects, and planets and moons.
    A lightweight procedural skybox ideal for semi-stylized projects.
    Image-based Outlines for 2D and 3D games with variable line weight, color, and displacement options.
    Per-pixel gaussian blur on your entire screen, part of the UI, or in-scene objects.
    Drag-and-drop ready-to-use ambient, impact, and spell particle effects.

Free Indie Game Marketing Checklist

Learn how to make your game successful with this handy checklist.

Download for free