Hello there!
I’ve been racking my brain over what seems to be a bug in Unity’s input system, though hopefully it’s just an oversight on my part. As the title says, I have implemented Unity’s Input Rebinding system, and although it works to rebind inputs from the controllers, it doesn’t work for the keyboard inputs.
And now comes the funniest part of the problem: there is actually one key on the keyboard that actually works, the Escape key. When the StartInteractiveBind is called and the InputSystem waits to receive an Input to remap it, the keyboard keys don’t seem to do anything (I tried absolutely all of them, even the F keys) except for the Escape.
(In this GIF I am pressing keys the whole time after clicking the rebind button and the moment I press Escape it gets mapped, but all the before pressed keys didn’t…)
I’ve made a lot of troubleshooting already. I tried to disable all the PlayerInput control schemes on starting rebind and enabling them back after to make sure actions were disabled, also tried to duplicate the PlayerInput asset and remove the Gamepad control scheme, leaving only the Keyboard one (no success), and all looks good in the Input Debugger.
Here is my RebindActionUI script, I didn’t made any significant change other than storing the old binding to check for duplicates.
Debugging, I have been able to confirm that neither OnComplete nor OnCancel is called with any keyboard key except for Escape, which calls OnComplete and rebinds correctly.
I am pretty sure the issue is with my PlayerInput asset, cause the PlayerInput asset in the Unity RebindUI sample folder works perfectly even in the rebind interface from my scene. But if the issue is this, what can be causing it? I’ve checked my PlayerInput asset multiple times already and I don’t see anything wrong…
Do you have any idea what I might be missing? Thanks for reading it in advance!