I’m at my wit’s end here. No really, I am.
for the past two weeks I’ve been trying to implement rumble functionality into my game. I’ve tried EVERYTHING.
At first, I used my Ps4 controller for testing. nothing fancy, just some
Gamepad.current.SetMotorSpeeds( 0.5f, 0.0f)
in my Update() or Awake() method to try to get things running. Turns out it didn’t work. Despite Unity explictly stating otherwise here:
Note: Only the following combinations of Devices/OSes currently support rumble:
- PS4, Xbox, and Switch controllers, when connected to their respective consoles. Only supported if you install console-specific input packages in your Project.
- PS4 controllers, when connected to Mac or Windows/UWP computers.
- Xbox controllers on Windows.
(Gamepad Support | Input System | 1.0.2)
Okay, fair enough anyways. Might be an issue with Microsoft and Ps4 controller support. I did a little research on the few forum posts that existed for this problem and apparently no one could get Rumble to work on a ps4 Dualshock. So I downloaded Ds4 Windows and mapped the controller to a virtual Xbox 360 one. Unity recognizes it as such. Rumble works, but only for 5 seconds or so until it gets turned off automatically, no matter what I do. Alright then, maybe it’s the fact I’m using the controller wireless. So cable it is. plugged it in, both controller and rumble work perfectly fine in the Ds4 Windows software, but not in Unity. Unity recognizes the plugged in controller, but rumble isn’t working at all.
Alright then, at this point I’m pretty fed up with the whole topic. Am I the only person ever on this planet that wanted to implement rumble into his game? So just today, I went and bought a brand new official Xbox One controller. For 60 bucks. And guess what. Rumble still doesn’t work. Wired and wireless, doesn’t matter.
I really don’t get it. Can anyone help me out to see what I’m doing wrong here? does really none of these setups (ps4 bluetooth, ps4 wired, virtual xbox360, Xbox One bluetooth, Xbox One wired) do the trick here?
maybe It’s the way I’m currently still calling
Update(){ Gamepad.current.SetMotorSpeeds(0.5f, 0.5f); } to try to get any reaction from my controller.
Debug.Log(Gamepad.current); gives me XInputControllerWindows:/XInputControllerWindows, so that shouldn’t be the issue here. Controls also work perfectly fine, it’s really just the damn rumble thats giving me a headache.
Any help is appreciated. And sorry if I messed up my tone in this post a few times, it’s just so frustrating to me.