InControl: Introduction

InControl is an input manager for Unity3D that standardizes input mappings across platforms for common controllers. It is written in C# and strives to make it easy to add cross-platform controller support to your game.

Now available for purchase on the Unity Asset Store.


  • Standardizes controller input mappings across various platforms.
  • Supports a huge list of controllers, and more being added all the time.
  • Bind actions to controls (keyboard, mouse, controller input) and rebind at runtime.
  • Create touch controls as a virtual controller.
  • XInput support, with rumble! (Windows only)
  • iCade support (iOS only)
  • Support for 10 connected devices with up to 20 analogs and 20 buttons each.
  • Trivial to support new devices and platforms.
  • Events for attached and detached devices.
  • Events for active device switches.
  • Native module for Windows, Mac and MFi (macOS, iOS, tvOS) for more reliable and efficient controller support.

Pricing and Availability

InControl is currently sold through the Unity Asset Store and is priced at US $40. This price tends to increase every few versions as major features are added.

Warning: InControl Is For Programmers

In order to avoid misunderstandings, I would like to be upfront about the following points:

  • InControl is not for non-programmers. While there are a few editor shortcuts to help you get set up, it requires actual code to use. It is certainly not a drop in replacement for Unity's Input class. The point is, after all, to improve things.
  • InControl will not work out-of-the-box with other plugins and scripts in the Asset Store. They will require some simple modification by you. I will not convert other assets to use InControl for you. Sorry.
  • InControl is known to work with JavaScript / UnityScript, but no guarantee or thought is given to such compatibility. This is a C# asset intended for use in C#.

That said, InControl has a simple API that will make getting cross platform controller support into your game much, much easier.

If you know your way around code, converting existing scripts to use InControl should be very easy, and I am more than happy to assist with any technical questions or support issues you may have.