Unity Input System

Topics:

 


Requirements:

  • Rewired 1.1.63.0+
  • Unity 2021.2.0f1+
  • Unity Input System 1.7.0+ package
  • (Console plugins may have their own requirements.)

The Unity Input System backend must be enabled in the Unity Player settings in the Unity Editor:

  • Project Settings -> Player -> Configuration -> Active Input Handling -> Input System Package (New) or Both

 


Overview:

As of Rewired 1.1.63.0, Rewired supports using the "new" Unity Input System as an optional input source on most platforms.

On most platforms, Rewired implements native input for controllers, but not for keyboard, mouse, or touchscreen, instead falling back to Unity input for those devices. To use Unity Input System for these devices, set the Preferred Unity Input Source in the Rewired Editor to Input System.

As Rewired is dependent on Unity Input System when it is the chosen input source, any issues or bugs in the underlying Input System package will affect Rewired. If you discover bugs and issues caused by Unity Input System, report them to Unity, as it is their responsibility to fix issues in their Input System package. Rewired will not be updated with attempts to patch over bugs in the underlying Unity Input System. Monitor Unity Input System package update for bug fixes and download updates as necessary.

At the time of this writing, the latest version of Unity Input System is version 1.19.0. Due to numerous issues found in Unity Input System across many platforms, it is currently recommended to use the old Unity Input Manager, not Unity Input System as the Preferred Unity Input Source for best results.

 


Known Issues:

When Unity Input System is chosen as the input source for a build target, Rewired becomes subject to all the limitations and issues of Unity Input System. The following issues have been found in Unity Input System and cannot be fixed by Rewired.

Issue Input System Versions Tested
All platforms: Controller re-connection does not always work properly and re-connected controller may be matched to the wrong controller in history due to inadequate rematching values being exposed from the native side. 1.12.0, 1.19.0
Desktop platforms: Hat switches are completely broken. 1.12.0, 1.19.0
Windows Standalone: Bluetooth controllers may appear connected even after disconnected and this may persist between application sessions. 1.12.0, 1.19.0
Windows Standalone: Sony Dual Sense does not stop vibrating when instructed to stop if a vibration value was sent on the same frame. Stop must be called again on the next frame in order to stop.
1.12.0
Windows Standalone: Dual Sense vibration no longer works via Bluetooth or USB. 1.19.0
Windows Standalone: Dual Shock 4 vibration does not work via Bluetooth. 1.19.0
Windows Standalone: Dual Shock 4 does not stop vibrating when instructed to stop if a vibration value was sent on the same frame. Stop must be called again on the next frame in order to stop. 1.19.0
Windows Standalone IL2CPP build and Editor: Xbox Series S controller (Bluetooth) reports canRunInBackground is true, yet it produces no input in a windowed build that is out of focus even with InputSystem.runInBackground enabled, Application.runInBackground enabled, InputSystem.settings.backgroundBehavior set to InputSystem.InputSettings.BackgroundBehavior.IgnoreFocus. 1.12.0
Windows Standalone: Button down events can be missed when the frame rate is low and a key or button is pressed quickly. 1.8.2
(Fixed at or before 1.19.0)

Android: Non-gamepad HID devices do not work at all.

1.12.0, 1.19.0
Android: Gamepad vibration does not work. 1.12.0, 1.19.0
iOS/tvOS: Gamepad vibration does not work. 1.19.0
tvOS: Remote touchpad swipe + button is flaky and behaves differently than UnityEngine.Input. There is a conflict between swiping on the touchpad and clicking the center button. When one of the input types occurs, the other would fail to register input, requiring the touchpad be released entirely before the swipe/click would function again reliably. 1.12.0
PS4: Non-gamepad controllers are not supported (racing wheel, flight sticks, etc.) 1.12.0
PS5: Non-gamepad controllers are not supported (racing wheel, flight sticks, etc.) 1.12.0