Known Issues
Topics:
- Running in a Sandbox
- Windows App Store support not working in Unity 5.0.0, fixed in 5.0.1
- Android remotes are not detected (Nexus Player, Amazon Fire TV)
- Linux joystick issues
- Keyboard keys stuck on Linux in Unity 5.1.1
- Compiler error in 5.1.2 patch releases
Running in a Sandbox
Windows (tested with Sandboxie):
- Due to a lack of permissions, Rewired is unable to receive device information from Raw Input when run inside a sandbox. Joysticks will not work properly in Raw Input mode. (As a note, Unity itself is also unable to receive this information, rendering joystick support in Unity broken under the default security settings.)
- Direct Input mode is able to receive joystick input, but joystick plug/unplug notifications are blocked, so hot-plugging does not work properly even in Direct Input mode.
Windows App Store support not working in Unity 5.0.0, fixed in 5.0.1
Due to a new bug introduced in Unity 5.0.0, Rewired is unable to be compiled in this version of Unity. The bug was fixed in Unity 5.0.1, so upgrade to 5.0.1 if you need Windows App Store support.
Android remotes are not detected (Nexus Player, Amazon Fire TV)
These remotes may not work on versions of Unity 5.02 or greater. Unity introduced a new bug in this version that makes the remote appear with a NULL name in the Input.GetJoystickNames array. There is no way to identify these remotes because of this. The bug still exists as of 5.1.1f1. It has been reported and this information will be updated if a fix is issued.
Linux joystick issues
There are many issues with joystick support in Linux because Rewired uses Unity Input as the input source on this platform at present. At some point, if Unity doesn't address these issues, I hope to write a native input library for Linux. Until then, these issues persist.
Note: No other input system available for Unity is able to handle these issues in Linux any better than Rewired because they all also use Unity's input system for this platform.
Axis Calibration Problems
Linux joystick axes randomly calibrate zero as 0, -0.5, or 0.5 and persist for the session. Sometimes this is a single axis on a controller, sometimes multiple. Quitting and restarting may reset these axes, but others may calibrate wrongly instead. Axes must be calibrated manually by the user during runtime to adjust for this.
No Hot-plugging in Unity 4.x
Joysticks cannot be attached to the system after Unity is launched on Unity 4.x. New joysticks will never be detected. A joystick that has been unplugged will never return values again afterwards during the Unity session.
Broken Hot-plugging in Unity 5.x
Unity 5.x tried to introduce hot-plugging to Linux, but it was implemented poorly. When plugging in a controller, a new name entry will be added to the UnityEngine.Input.GetJoystickNames array every time. The more times you plug a controller in, the more duplicate names will appear in that list. This fools Rewired into thinking there are many joysticks attached, all but one of which are phantoms and do not return any data. There is no way to filter out these phantom entries. There is no workaround for this issue.
Keyboards and/or mice may show up as joysticks
Unity's input system does not always filter out keyboards and mice from the joystick list. Therefore, it's possible for a keyboard to show up in the UnityEngine.Input.GetJoystickNames array. This fools Rewired into thinking there is a joystick attached and it will be assigned to a Player when in reality there is none. Rewired attempts to filter these devices out, but since Unity only gives you a device name string to work with, the results of this may or may not be reliable.
Certain devices show up as multiple joysticks
Unity's input system does not properly filter out HID devices that support multiple controllers on one device. An example of this is the XBox 360 Wireless Receiver. This device will always show 4 entries when attached to the system regardless of how many controllers are actually connected. This makes it impossible for Rewired to know which of these 4 entries is the real controller (if any). Therefore, they are all treated as controllers attached to the system and will be assigned to Players.
Keyboard keys stuck on Linux in Unity 5.1.1
This is not a Rewired issue, it's a Unity bug:
http://forum.unity3d.com/threads/unity-5-1-1-broke-input-for-linux-standalone.335113/
Update to Unity 5.1.2 to fix it.
Compiler error in 5.1.2 patch releases
Unity made an undocumented breaking change to UnityEngine.EventSystems.PointerInputModule.GetMousePointerEventData(). It now requires int id to be passed. This cannot be fixed automatically in my code until Unity 5.1.3 is released because there is no way to detect a patch version before compile.
More information and a patch:
http://forum.unity3d.com/threads/rewired-advanced-input-for-unity.270693/page-20#post-2216921
