InControl: Native Input Module

The new native input module for Windows and Mac provides significant advantages over the old Unity input module:

  • Improved detection of controllers.
  • Reliable detection of detach/attach events at runtime.
  • Supports rumble on Mac for Xbox 360, One and compatible controllers.
  • Supports rumble and LED control on Mac for PlayStation 4 controller (when wired only).
  • Supports rumble (with XInput enabled) for XInput controllers on Windows.
  • Supports high input polling rates, not just on Unity update ticks.

Native input can be enabled in the InControlManager inspector. On platforms where it is supported (currently Windows/Mac only), InControl’s Unity input module will be disabled so they don’t conflict. On other platforms this will not happen, so it is safe to leave it enabled when building for other platforms.

On Windows, you have the option to enable XInput support for compatible controllers. Normally, DirectInput is used for all controllers. Unfortunately, for Xbox 360/One controllers, this means trigger input happens on a single, combined axis. This is a limitation imposed by Microsoft. Additionally, rumble is not supported through DirectInput. When XInput support is enabled, XInput compatible controllers such as Xbox 360/One controllers will be handled through the XInput driver, which allows both rumble and access to separate triggers axes. Unfortunately, XInput has a limit of four controllers, so it’s a tradeoff. If you don’t have an need one way or another, we recommend enabling XInput. When XInput is enabled, non-XInput compatible controllers will still continue to work through DirectInput.

Currently Windows support is limited to the following controllers:

  • Xbox 360 (rumble supported with XInput enabled)
  • Xbox One (rumble supported with XInput enabled)
  • All XInput compatible devices with XInput enabled.
  • PlayStation 4 (no rumble)
  • Logitech F310
  • Logitech F510 (rumble supported with XInput enabled)
  • Logitech F710 (rumble supported with XInput enabled)
  • NVidia Shield controller
  • Afterglow Xbox 360 (rumble supported with XInput enabled)
  • AirFlo PS3
  • Buffalo Classic GamePad
  • Steam Controller (with standard gamepad template)
  • Razer Serval (triggers do not work)

Currently Mac support is limited to the following controllers:

  • Xbox 360 (rumble and player indicator support)
  • Xbox One (rumble support)
  • PlayStation 4 (rumble and LED support, no trigger haptics)
  • PlayStation 3 (does not support rumble or lights)
  • Logitech F310
  • Logitech F510 (rumble support)
  • Logitech F710 (rumble support)
  • Buffalo Classic GamePad
  • A bunch of Xbox 360/One compatible devices (theoretically, anything supported by the 360Controller driver; see below)

Xbox, Logitech and many other controllers require this driver. Be sure to use at least version 0.16