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:
-
^ 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.
I’m having the same problem with Bluetooth and the PS4 DualShock controller only working properly via USB in Unity. I’m using $$anonymous$$acOS so this is def not just a Windows issue. I’ve tested the controller on an SNES emulator on my $$anonymous$$ac and it worked perfectly, so not sure why the Unity team hasn’t figured this one out yet. Still haven’t found a fix.
Answer by joshbianco · Dec 22, 2020 at 10:13 AM
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.
Your answer

Follow this Question
Related Questions
This is weird - Assembly hi could not be loaded 1 Answer
X box controller DPad on Windows? 0 Answers
Input System 2019 : onCreatePlayer and onDestroyPlayer 0 Answers
Rebind - Excluding Certain Keys 0 Answers
Input.GetButton not working 1 Answer