What are you looking for?
Hero background image
Input System
Set up controls in one place, for all platforms and devices out of the box.
Create for any platform with ease

Create for any platform with ease

Input is at the heart of what makes your real-time projects interactive. With the Input System, you can quickly set up controls for multiple platforms, from mobile to VR.

Unity’s system standardizes the way you implement controls and also provides advanced functionality unprecedented in core solutions.

You only need to bind actions to your code logic and then you can enable different devices and controls visually in the Input Action window. The Input System also provides an API. The Input System package is available from the Package Manager and verified for Unity 2019 LTS and newer versions.

Fast and flexible solution
A solid foundation
A solid foundation

We created the Input System to support modern and custom devices with three guiding principles: ease of use, consistency across platforms and flexibility.

Intuitive and flexible workflow
Intuitive and flexible workflow

Connect controls to your scripts through the Input Action component. It reads your Action Map and communicates with your script via callbacks. Create different control schemes, per-player controls and different communication methods.

At the core of Unity’s development
At the core of Unity’s development

The new system aims to replace the legacy system, and while you can use both in your project, upcoming new Unity technology such as UI Toolkit or DOTS will be fully supported by the Input System. Join Input System forum for news on upcoming functionality.

Key features
Support for all Unity platforms

Implement standardized controls for your console, PC, mobile or XR projects, different control schemes can live in the same Unity project making cross-platform development seamless, you can also create support for custom devices.

Quick set up with a visual interface

The unified Input Action window allows you to add support for different controls and the actions that will be triggered by them creating an Input Map asset that can be used later with a component that will connect those actions to your code logic. Input System also comes with tools to visualize the current available devices and controls.

Advanced options out of the box

Runtime rebinding, per-player input, different control schemes, easy local multiplayer, automatic input detection, overriding of default HIDs or framerate independent input are some of the tools that the system offers to work for most projects needs.

Resources and projects to get you started

The documentation has get-started guides as well as coverage of the most edge case scenarios. Additionally, the package includes sample projects and tools, all available in the Package Manager. We also offer tutorials and learning content, and have a dedicated forum thread for updates.

Extensible and customizable with the API

You can add custom device support through a low level scripting API. You can also efficiently create your testing tools like bots or automated tests to streamline your production or create a custom team workflow to fit your particular needs.

Source code access

The Input System comes with full source code which offers full access to the inner workings of the tool, you can also contribute to its development through the repository on GitHub.

Learn more
Tutorial: Using the Input System in Unity
Tutorial: Using the Input System in Unity

Learn how to configure a Unity application to use the Input System with this series on Unity Learn.

Input System: Workflow tips and feature integrations
Input System: Workflow tips and feature integrations

In this Unite Now session, you’ll learn how to quickly switch control schemes, rebind control settings, and connect the Input System with other Unity features like Cinemachine or Unity UI.

Meet the devs: Input System
Meet the devs: Input System

This session shows a demo of setting up a local multiplayer, and how you can quickly set up gamepad controls, spawn new players and mobile controls. The main developer also answers questions from the audience.

Documentation
Documentation

Use the new PlayerInput component to get started. You can find a step by step guide included in the documentation. There's also a number of samples that come with the Input System package that you can select from the Samples list.

Intro to the input system
Introducing the new Input System

This Unite 2019 presentation explains how the Input System focuses on ease of use and consistency across devices.

Implementing an Ability System tutorial
Implementing an Ability System tutorial

The Prototype Series is a group of videos that focuses on the creation of playable prototypes, showcasing how multiple features of Unity can be used to achieve game mechanics that can be used in real-world scenarios, in this video Input System is used to move a 3D Character.

Intro to the Input System
Intro to the Input System

Rene Damm, lead developer of the Input System, tells us in his own words what the Input System is and the goals the team is trying to achieve.

Lost Crypt 2D sample project
Lost Crypt 2D sample project

Lost Crypt is a 2D side-scrolling sample project that showcases all of Unity’s 2D tools. It uses the Input System to control the 2D character.

Join the party
Join the party

Connect with our developers and access the latest news on the development of the Input System in the forum. You can share your experience with the community and discover from others use cases of the system.

The repository is available on GitHub, and you can actively participate in the development of the tool or have a deeper look under the hood.