Under the new Input System, there is an interactive rebind demo. That rebind demo button uses RebindActionUI, which then uses InputActionRebindingExtensions. If user uses a controller setup like a 2x USB HOTAS (Logitech X56), The stick and throttle both have the same input axis name, and they both are discovered by the Input System as <Joystick>. Because of this, InputActionRebindExtensions finds the controller, but then incorrectly writes the path to the Joystick, not the throttle, doubling the input to throttle and joystick concurrently.
Steps:
- Connect Logitech HOTAS X56 or any other dual-usb HOTAS to computer
- Open user’s attached project “UnityRaymarching-master.zip”
- Enter Play mode
- Click to bind “Move” and move Logitech HOTAS stick
- Click to bind “Look” and move Logitech HOTAS throttle
Expected: InputSystem binds different names for different axis and names are different.
Actual: InputSystem binds the same name for both stick and throttle.
Workarounds:
Option 1:
- Copy Input system package to Assets folder
- In InputActionRebindingExtensions.cs comment out lines “path = GeneratePathForControl(selectedControl);"
Option 2:
- Use .WithoutGeneralizingPathOfSelectedControl()
Reproduced with: Input System 1.4.2 (2020.3.39f1, 2021.3.10f1, 2022.1.16f1, 2022.2.0b8, 2023.1.0a10).
Tested with: Windows 10, Logitech HOTAS X56.