Closed pho closed 1 year ago
Oh I had the same issue, with the same setup: #35903 But it's elusive to reproduce, because I tested with the same controller on another W10 laptop and it didn't happen.
So this started happening to me again, with new XBox Series controller and via cable. Seems not consistent anymore though, sometimes there is one event, sometimes 2. My workaround is checking input inside _process()
instead _input()
bruh (I'm using actions).
I'm having this same problem in version 3.3.2 using an Xbox Series controller. It's rather problematic since my game is multiplayer played with several controllers. I've done some testing and when the window is focused it seems the first controller counts as both device 0 and 1 and if a new controller is added it will be device 2. However if the game is started while two controllers are connected the first controller will count as 0 and 2 while the second will count as 1 like it's supposed to.
I'm having the same issue.
I seem to get this issue in 3.3.3.stable too. One Xbox Series controller connected shows up as two joypads in the engine: one with name "XInput Gamepad", the other with name "Xbox Series Controller".
I have found a workaround. Since both controllers are synchronized to the frame, I can simply exclude one when joining, for example.
Fixed by #71784, at least for Xbox Series controllers.
If anyone has an Xbox One controller and could check if the bug is solved or not in the next beta (4.0 beta 15), that would be great!
For future reference:
XInput Gamepad __XINPUT_DEVICE_
) and it works correctly. Therefore, I can't reproduce https://github.com/godotengine/godot/issues/41684 in the first place.XInput Gamepad __XINPUT_DEVICE_
in the joypads demo.
Godot version: 3.2.2-mono
OS/device including version: Windows 10 Pro Version 1909 Xbox One controller via bluetooth
Issue description: A single joypad button press:
There is also a shift in the device index:
See https://gfycat.com/physicalfortunatefinwhale
Steps to reproduce: Check out the attached project, its just a func _input() with a print
Minimal reproduction project: BugReport.zip