New Input System seriously broken on Windows for PS4 and Switch controllers over Bluetooth

Hi all - I’ve been trying to use the new input system on Windows machine with both PS4 and Switch controllers with no luck. I cannot get the new input system to behave correctly in Unity 2020.1 using Input System 1.0.0.

Steps to reproduce:

Fresh Windows 10 install

  • Fresh unity install

  • Confirm Steam or other input stealing software is NOT running

  • Connect Ps4 controller via Bluetooth

  • Confirm all your input works as expected via https://gamepad-tester.com/

In Unity

  • Set up new input system via new input manager

  • Attempt to record input

  • Get this:

  • 170314-ps4borked.png

^ Despite pressing a single button here, the listener records multiple events instead of a single press. This behaviour is same for PS4 controller and Switch. This fails not at the code level but at the input manager level. Again - the https://gamepad-tester.com/ shows and recognises input correctly.

The direct impact inside of the game is that player movement “pulls” in one direction, and other button actions are triggered with what it looks like right-stick jitter. My player jumps randomly because input receives random jitter as soon as I plug in a Bluetooth controller.

Note, I have previously managed to use it on a Mac without biding issues so this might be windows specific problem.

To confirm this issue is related to pads, when I disconnect my Bluetooth controller and instead hit “space” button - that input is then recorded correctly, as a single keyboard input.

After tinkering with it I did get the PS4 controller to work on USB and Bluetooth. I setup separate button bindings for a USB connected controller and Bluetooth connected controller for each button. I just connected the controller each way then listened for the buttons and chose the most logical one out of the list as it does show several options when connected via Bluetooth, but after it’s setup it works as expected.

I’m only using the D-Pad to move left or right, or climb up or down, and the “X” Button to Jump. In this case the button group is called “Land” for how the player behaves on land (as opposed to water). I’ve attached a screen shot of my setup in the Input manager. Hope this helps.