Phase 6 updates

Phase 6 · Slice 57 ·

Rumble

  • Gamepad.SetMotorSpeeds, PauseHaptics, ResumeHaptics and ResetHaptics (IDualMotorRumble, IHaptics), and InputSystem's own Pause/Resume/ResetHaptics for every device. Speeds stay until set again; pausing stops the motors and keeps the speeds.
  • Connected controllers rumble through gilrs's force feedback (ControllerRumble, API 53): XInput and Windows.Gaming.Input gamepads, evdev. Motors stop when play ends or the host shuts down, as Unity resets haptics.
  • Not on Windows for controllers Windows.Gaming.Input reads raw, such as a DualSense over Bluetooth (logged once: "can't rumble here"): those need their own HID output reports, and a DualSense over Bluetooth only takes them in its extended mode, in which Windows' generic controller input no longer reads it, so it means reading it over HID too.
  • MCP's play_step reports the virtual gamepad's motors (gamepad_rumble); checked by the e2e test (set, paused, resumed).
  • Next: native DualSense and DualShock 4 support over HID (input, rumble, light bar); URP render features; humanoid avatars and retargeting.