Quick answer: Use the Input System package, which recognizes the DualSense as a gamepad; the legacy Input Manager sees it as a generic joystick with scrambled axes. Confirm detection in Window > Analysis > Input Debugger. When the game runs through Steam with Steam Input on, the controller may appear as an Xbox pad instead, or twice; pick one path. Update the Input System package if Bluetooth connections misbehave.
PlayStation controllers are now common on PC, and players expect them to just work. In Unity, whether they do depends on which input API you use, how the controller is connected, and whether Steam is translating it before your game sees it.
Cause 1: the legacy Input Manager
The old Input.GetAxis system only knows about joystick axes and button numbers. A DualSense shows up as a generic joystick with its own numbering: the triggers, D-pad and face buttons land on different axes and buttons than an Xbox controller. Games mapped for Xbox controllers read nonsense, or nothing.
Switch to the Input System package and read Gamepad.current or, better, Input Actions bound to gamepad controls. The Input System maps DualSense, DualShock 4 and Xbox controllers to the same Gamepad layout, so one binding works for all of them.
Step 2: confirm Unity sees it
Open Window > Analysis > Input Debugger while in Play mode. Under Devices you should see something like DualSenseGamepadHID. Double-click it to watch live control values.
- Listed as DualSenseGamepadHID: detection works; the problem is your bindings.
- Listed as a generic HID or not at all: update the Input System package (DualSense support, particularly over Bluetooth, improved across versions), try a USB cable, and check that Windows sees it in
joy.cpl. - Listed as an XInput controller: something is translating it, usually Steam Input or DS4Windows (see below).
Cause 3: Steam Input translates it
When your game is launched from Steam and Steam Input is enabled for PlayStation controllers, Steam presents the controller to the game as a virtual Xbox controller. Your game then sees an XInput device, so:
- button prompts show Xbox glyphs,
- DualSense-specific features such as the light bar are unavailable through Unity, and
- if Unity also reads the physical DualSense over HID, you get two gamepads and double input.
Decide on one path. Either let Steam Input handle PlayStation controllers and ignore the raw device, or opt your game out of Steam Input for PlayStation controllers in your Steamworks settings and read the DualSense directly. The double input post below covers both options.
Light bar and rumble
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.DualShock;
if (Gamepad.current is DualSenseGamepadHID ds)
{
ds.SetLightBarColor(Color.red);
ds.SetMotorSpeeds(0.2f, 0.6f); // low, high frequency
}
// Always stop rumble when pausing or losing focus
InputSystem.ResetHaptics();
Adaptive triggers and the DualSense's advanced haptics are not exposed by the Input System on PC. They need a platform SDK or a third-party plugin.
Showing the right button prompts
Pick glyphs from the device actually in use, not from the platform: check Gamepad.current against DualShockGamepad (the base class for DualSense and DualShock 4) and XInputController, and update prompts when the last-used device changes. If Steam Input is active, use Steam's own glyph API, because your game only sees the virtual Xbox device.
Controller bugs on hardware you do not own
Controller support breaks on combinations you cannot test: a specific firmware, Bluetooth stack or remapping tool. Bugnet's Unity SDK lets players report from an in-game widget, and you can attach the connected device list from InputSystem.devices as report metadata, so “my controller does nothing” arrives with the exact device names.
Related problems
- Fix: Unity Input System Gamepad Not Detected or Disconnecting
- Fix: PS5 DualSense Haptic Trigger Feedback Not Firing
- How to Fix Controller Glyphs Showing the Wrong Buttons
- Fix: Controller Inputs Registering Twice With Steam Input (Double Input)
Frequently asked questions
Does Unity support the PS5 DualSense controller on PC?
Yes, through the Input System package, which recognizes it as DualSenseGamepadHID and maps it to the standard Gamepad layout. The legacy Input Manager only sees a generic joystick.
Why does my DualSense show as an Xbox controller in Unity?
Steam Input or a tool such as DS4Windows is translating it into a virtual XInput controller before your game sees it.
Can I use adaptive triggers in a Unity PC game?
Not through the Input System. Light bar color and basic rumble are supported; adaptive triggers need a platform SDK or third-party plugin.
Input Debugger first. If Unity calls it an XInput device, Steam got there before you.