The problem is that Unity’s new Input System v1.4.3 is not recognizing Left pad movement. When I click “Listen” under binding tab Unity is recognizing all other buttons clicked except Left Pad movement. Tried it under action types value, button, also all of the control types and Unity is not realizing movement on Left pad.
Do you have any idea how to proceed with debugging this? We are lost.
Could you please elaborate on what you mean by this? That is, are you taking an existing gamepad and modifying it’s form factor or are you literally building customer hardware?
Unity’s InputSystem is primarily built around support for specific, well-known input devices like Xbox or PlayStation DualShock gamepads while also trying to support other HID controllers via Auto Generated Layouts. My guess is, you’re custom gamepad is being detected as “Generic HID” controller by Unity
Unfortunately, because the HID data layout varies between devices, auto-generated layout can sometimes “miss” specific controls (Axis or Button) if it’s placed in a different field than what is (generally) expected. This is explained in more detail in the “HID Support” of the InputSystem documentation (linked above).
For example, the Stadia gamepad can be used on Windows as a wired controller but has a similar problem: the Left Trigger isn’t detected by InputSystem (in the Editor). This is because Stadia’s HID Report uses a completely different Control ID for the Left Trigger compared to every other gamepad. The gamepad works when actually playing a Stadia game, because the APIs know the HID layout and how to read the Axis/Button data from the correct controls. Since these APIs can’t be used in the Editor, the InputSystem is stuck trying to decipher the HID Report itself but doesn’t get it quite right. I suspect something very similar is happening here.
What can you do about it?
First off, please file a bug if you haven’t already. While the Input team might not directly fix the bug, they can use it to help improve the Auto-Layout Generation in future releases, i.e. make it “smarter” to detect other variances in HID Layouts.
If you’re able to modify the firmware for your custom controller, perhaps you can change the layout of your HID report to match what a “well known” gamepad does, e.g. PS4 DualShock.
Or you can write a custom input device script in Unity that correctly describes the HID Layout of you custom controller. This is also explained in the HID Support of the InputSystem documentation.
We are developing custom controller, custom hardware.
Regarding the missing Axis or Button because of mispredicted behavior, well, that doesn’t seem to be the case here. When I open Unity HID debugger it senses all other inputs except the one mapped as Throttle on the device driver. It doesn’t detect changes in any debug field.
Regarding the Bug report, I spent good 15 minutes looking for a place where to submit a Bug report regarding Input system but without luck. I found Github repo of the package but it is clearly stated to not submit bugs on the Github. You guys need to make a clearer statement where to report bugs like this.