Class DualSenseGamepadHID
PS5 DualSense controller that is interfaced to a HID backend.
Inherited Members
Namespace: UnityEngine .InputSystem .DualShock
Assembly: Unity.InputSystem.dll
Syntax
public class DualSenseGamepadHID : DualShockGamepad, IDualShockHaptics, IDualMotorRumble, IHaptics, IInputStateCallbackReceiver
Fields
m_LightBarColor
Declaration
protected Color? m_LightBarColor
Field Value
Type | Description |
---|---|
Color? |
Properties
leftTriggerButton
Declaration
public ButtonControl leftTriggerButton { get; protected set; }
Property Value
Type | Description |
---|---|
Button |
playStationButton
Declaration
public ButtonControl playStationButton { get; protected set; }
Property Value
Type | Description |
---|---|
Button |
rightTriggerButton
Declaration
public ButtonControl rightTriggerButton { get; protected set; }
Property Value
Type | Description |
---|---|
Button |
Methods
FinishSetup()
Perform final initialization tasks after the control hierarchy has been put into place.
Declaration
protected override void FinishSetup()
Overrides
Remarks
This method can be overridden to perform control- or device-specific setup work. The most common use case is for looking up child controls and storing them in local getters.
Examples
public class MyDevice : InputDevice
{
public ButtonControl button { get; private set; }
public AxisControl axis { get; private set; }
protected override void OnFinishSetup()
{
// Cache controls in getters.
button = GetChildControl("button");
axis = GetChildControl("axis");
}
}
GetStateOffsetForEvent(InputControl, InputEventPtr, ref uint)
Compute an offset that correlates control
with the state in eventPtr
.
Declaration
public bool GetStateOffsetForEvent(InputControl control, InputEventPtr eventPtr, ref uint offset)
Parameters
Type | Name | Description |
---|---|---|
Input |
control | Control the state of which we want to access within |
Input |
eventPtr | An input event. Must be a State |
uint | offset |
Returns
Type | Description |
---|---|
bool | False if the correlation failed or true if |
Remarks
This method will only be called if the given state event has a state format different than that of the device. In that case, the memory of the input state captured in the given state event cannot be trivially correlated with the control.
The input system calls the method to know which offset (if any) in the device's state block to consider the state
in eventPtr
relative to when accessing the state for control
as found in
the event.
An example of when this is called is for touch events. These are normally sent in ToucheventPtr
to, for example, read out the touch position,
See Also
OnNextUpdate()
A new input update begins. This means that the current state of the device is being carried over into the next frame.
Declaration
public void OnNextUpdate()
Remarks
This is called without the front and back buffer for the device having been flipped. You can use Change(Input
OnStateEvent(InputEventPtr)
A new state event has been received and is being processed.
Declaration
public void OnStateEvent(InputEventPtr eventPtr)
Parameters
Type | Name | Description |
---|---|---|
Input |
eventPtr | The state event. This will be either a State |
Remarks
Use Change(Input
See Also
PauseHaptics()
Pause rumble effects on the gamepad.
Declaration
public override void PauseHaptics()
Overrides
Remarks
It will pause rumble effects and save the current motor speeds.
Resume from those speeds with Resume
Examples
See Also
ResetHaptics()
Resets rumble effects on the gamepad by setting motor speeds to 0.
Declaration
public override void ResetHaptics()
Overrides
Remarks
Some devices such as Dual
Examples
See Also
ResumeHaptics()
Resume rumble effects on the gamepad.
Declaration
public override void ResumeHaptics()
Overrides
Remarks
It will resume rumble effects from the previously set motor speeds, such as motor speeds saved when
calling Pause
Examples
See Also
SetLightBarColor(Color)
Set the color of the light bar on the back of the controller.
Declaration
public override void SetLightBarColor(Color color)
Parameters
Type | Name | Description |
---|---|---|
Color | color | Color to use for the light bar. Alpha component is ignored. Also, RBG values are clamped into [0..1] range. |
Overrides
SetMotorSpeeds(float, float)
Set the motor speeds of the low-frequency (usually on the left) and high-frequency (usually on the right) motors.
Declaration
public override void SetMotorSpeeds(float lowFrequency, float highFrequency)
Parameters
Type | Name | Description |
---|---|---|
float | lowFrequency | Speed of the low-frequency (left) motor. Normalized [0..1] value with 1 indicating maximum speed and 0 indicating the motor is turned off. Will automatically be clamped into range. |
float | highFrequency | Speed of the high-frequency (right) motor. Normalized [0..1] value with 1 indicating maximum speed and 0 indicating the motor is turned off. Will automatically be clamped into range. |
Overrides
Remarks
Note that hardware will put limits on the level of control you have over the motors. Rumbling the motors at maximum speed for an extended period of time may cause them to turn off for some time to prevent overheating. Also, how quickly the motors react and how often the speed can be updated will depend on the hardware and drivers.
Examples
SetMotorSpeedsAndLightBarColor(float?, float?, Color?)
Set motor speeds of both motors and the light bar color simultaneously.
Declaration
public bool SetMotorSpeedsAndLightBarColor(float? lowFrequency, float? highFrequency, Color? color)
Parameters
Returns
Type | Description |
---|---|
bool | True if the command succeeded. Will return false if another command is currently being processed. |
Remarks
Use this method to set both the motor speeds and the light bar color in the same call. This method exists
because it is currently not possible to process an input/output control (IOCTL) command while another one
is in flight. For example, calling Set
See Set