docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class DualShock4GamepadHID

    PS4 DualShock controller that is interfaced to a HID backend.

    Inheritance
    object
    InputControl
    InputDevice
    Gamepad
    DualShockGamepad
    DualShock4GamepadHID
    Implements
    IDualShockHaptics
    IDualMotorRumble
    IHaptics
    IInputStateCallbackReceiver
    Inherited Members
    DualShockGamepad.touchpadButton
    DualShockGamepad.optionsButton
    DualShockGamepad.shareButton
    DualShockGamepad.L1
    DualShockGamepad.R1
    DualShockGamepad.L2
    DualShockGamepad.R2
    DualShockGamepad.L3
    DualShockGamepad.R3
    DualShockGamepad.current
    DualShockGamepad.MakeCurrent()
    DualShockGamepad.OnRemoved()
    Gamepad.buttonWest
    Gamepad.buttonNorth
    Gamepad.buttonSouth
    Gamepad.buttonEast
    Gamepad.leftStickButton
    Gamepad.rightStickButton
    Gamepad.startButton
    Gamepad.selectButton
    Gamepad.dpad
    Gamepad.leftShoulder
    Gamepad.rightShoulder
    Gamepad.leftStick
    Gamepad.rightStick
    Gamepad.leftTrigger
    Gamepad.rightTrigger
    Gamepad.aButton
    Gamepad.bButton
    Gamepad.xButton
    Gamepad.yButton
    Gamepad.triangleButton
    Gamepad.squareButton
    Gamepad.circleButton
    Gamepad.crossButton
    Gamepad.this[GamepadButton]
    Gamepad.all
    Gamepad.OnAdded()
    InputDevice.InvalidDeviceId
    InputDevice.description
    InputDevice.enabled
    InputDevice.canRunInBackground
    InputDevice.added
    InputDevice.remote
    InputDevice.native
    InputDevice.updateBeforeRender
    InputDevice.deviceId
    InputDevice.lastUpdateTime
    InputDevice.wasUpdatedThisFrame
    InputDevice.allControls
    InputDevice.valueType
    InputDevice.valueSizeInBytes
    InputDevice.ReadValueFromBufferAsObject(void*, int)
    InputDevice.ReadValueFromStateAsObject(void*)
    InputDevice.ReadValueFromStateIntoBuffer(void*, void*, int)
    InputDevice.CompareValue(void*, void*)
    InputDevice.OnConfigurationChanged()
    InputDevice.ExecuteCommand<TCommand>(ref TCommand)
    InputDevice.ExecuteCommand(InputDeviceCommand*)
    InputControl.name
    InputControl.displayName
    InputControl.shortDisplayName
    InputControl.path
    InputControl.layout
    InputControl.variants
    InputControl.device
    InputControl.parent
    InputControl.children
    InputControl.usages
    InputControl.aliases
    InputControl.stateBlock
    InputControl.noisy
    InputControl.synthetic
    InputControl.this[string]
    InputControl.magnitude
    InputControl.ToString()
    InputControl.EvaluateMagnitude()
    InputControl.EvaluateMagnitude(void*)
    InputControl.WriteValueFromBufferIntoState(void*, int, void*)
    InputControl.WriteValueFromObjectIntoState(object, void*)
    InputControl.TryGetChildControl(string)
    InputControl.TryGetChildControl<TControl>(string)
    InputControl.GetChildControl(string)
    InputControl.GetChildControl<TControl>(string)
    InputControl.RefreshConfigurationIfNeeded()
    InputControl.RefreshConfiguration()
    InputControl.m_StateBlock
    InputControl.currentStatePtr
    InputControl.previousFrameStatePtr
    InputControl.defaultStatePtr
    InputControl.noiseMaskPtr
    InputControl.stateOffsetRelativeToDeviceRoot
    InputControl.optimizedControlDataType
    InputControl.CalculateOptimizedControlDataType()
    InputControl.ApplyParameterChanges()
    Namespace: UnityEngine.InputSystem.DualShock
    Assembly: Unity.InputSystem.dll
    Syntax
    public class DualShock4GamepadHID : DualShockGamepad, IDualShockHaptics, IDualMotorRumble, IHaptics, IInputStateCallbackReceiver

    Properties

    leftTriggerButton

    Declaration
    public ButtonControl leftTriggerButton { get; protected set; }
    Property Value
    Type Description
    ButtonControl

    playStationButton

    Declaration
    public ButtonControl playStationButton { get; protected set; }
    Property Value
    Type Description
    ButtonControl

    rightTriggerButton

    Declaration
    public ButtonControl rightTriggerButton { get; protected set; }
    Property Value
    Type Description
    ButtonControl

    Methods

    FinishSetup()

    Perform final initialization tasks after the control hierarchy has been put into place.

    Declaration
    protected override void FinishSetup()
    Overrides
    DualShockGamepad.FinishSetup()
    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.

    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");
             }
         }</code></pre></example>
    

    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
    InputControl control

    Control the state of which we want to access within eventPtr.

    InputEventPtr eventPtr

    An input event. Must be a StateEvent or DeltaStateEvent

    uint offset
    Returns
    Type Description
    bool

    False if the correlation failed or true if offset has been set and should be used as the offset for the state of control.

    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 TouchState format which, however, is not the state format of Touchscreen (which uses a composite of several TouchStates). When trying to access the state in eventPtr to, for example, read out the touch position,

    See Also
    GetStatePtrFromStateEvent(InputControl, InputEventPtr)

    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(InputDevice, InputEventPtr, InputUpdateType) to write values into the device's state (e.g. to reset a given control to its default state) which will implicitly perform the buffer flip.

    OnStateEvent(InputEventPtr)

    A new state event has been received and is being processed.

    Declaration
    public void OnStateEvent(InputEventPtr eventPtr)
    Parameters
    Type Name Description
    InputEventPtr eventPtr

    The state event. This will be either a StateEvent or a DeltaStateEvent.

    Remarks

    Use Change(InputDevice, InputEventPtr, InputUpdateType) to write state updates into the device state buffers. While nothing will prevent a device from writing directly into the memory buffers retrieved with currentStatePtr, doing so will bypass the buffer flipping logic as well as change detection from change monitors (IInputStateChangeMonitor; this will cause InputAction to not work with the device) and thus lead to incorrect behavior.

    See Also
    StateEvent
    DeltaStateEvent

    PauseHaptics()

    Pause rumble effects on the gamepad. Resume with ResumeHaptics().

    Declaration
    public override void PauseHaptics()
    Overrides
    Gamepad.PauseHaptics()
    See Also
    IDualMotorRumble

    ResetHaptics()

    Reset rumble effects on the gamepad. Puts the gamepad rumble motors back into their default state.

    Declaration
    public override void ResetHaptics()
    Overrides
    Gamepad.ResetHaptics()
    See Also
    IDualMotorRumble

    ResumeHaptics()

    Resume rumble affects on the gamepad that have been paused with PauseHaptics().

    Declaration
    public override void ResumeHaptics()
    Overrides
    Gamepad.ResumeHaptics()
    See Also
    IDualMotorRumble

    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
    DualShockGamepad.SetLightBarColor(Color)

    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
    Gamepad.SetMotorSpeeds(float, float)
    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.

    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
    Type Name Description
    float lowFrequency

    SetMotorSpeeds(float, float)

    float highFrequency

    SetMotorSpeeds(float, float)

    Color color

    SetLightBarColor(Color)

    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 SetMotorSpeeds(float, float) immediately after calling SetLightBarColor(Color) might result in only the light bar color changing. The SetMotorSpeeds(float, float) call could fail. It is however possible to combine multiple IOCTL instructions into a single command, which is what this method does.

    See SetMotorSpeeds(float, float) and SetLightBarColor(Color) for the respective documentation regarding setting rumble and light bar color.

    Implements

    IDualShockHaptics
    IDualMotorRumble
    IHaptics
    IInputStateCallbackReceiver

    Extension Methods

    InputControlExtensions.CheckStateIsAtDefault(InputControl)
    InputControlExtensions.CheckStateIsAtDefault(InputControl, void*, void*)
    InputControlExtensions.CheckStateIsAtDefaultIgnoringNoise(InputControl)
    InputControlExtensions.CheckStateIsAtDefaultIgnoringNoise(InputControl, void*)
    InputControlExtensions.CompareState(InputControl, void*, void*)
    InputControlExtensions.CompareState(InputControl, void*, void*, void*)
    InputControlExtensions.CompareStateIgnoringNoise(InputControl, void*)
    InputControlExtensions.FindControlsRecursive<TControl>(InputControl, IList<TControl>, Func<TControl, bool>)
    InputControlExtensions.FindInParentChain<TControl>(InputControl)
    InputControlExtensions.GetStatePtrFromStateEvent(InputControl, InputEventPtr)
    InputControlExtensions.HasValueChangeInEvent(InputControl, InputEventPtr)
    InputControlExtensions.HasValueChangeInState(InputControl, void*)
    InputControlExtensions.IsActuated(InputControl, float)
    InputControlExtensions.IsPressed(InputControl, float)
    InputControlExtensions.ReadDefaultValueAsObject(InputControl)
    InputControlExtensions.ReadValueAsObject(InputControl)
    InputControlExtensions.ReadValueFromEventAsObject(InputControl, InputEventPtr)
    InputControlExtensions.ReadValueIntoBuffer(InputControl, void*, int)
    InputControlExtensions.ResetToDefaultStateInEvent(InputControl, InputEventPtr)
    InputControlExtensions.WriteValueFromObjectIntoEvent(InputControl, InputEventPtr, object)
    InputControlExtensions.WriteValueIntoEvent<TValue>(InputControl, TValue, InputEventPtr)
    InputControlExtensions.WriteValueIntoState(InputControl, void*)
    InputControlExtensions.WriteValueIntoState<TValue>(InputControl, TValue, void*)
    InputControlExtensions.CopyState(InputDevice, void*, int)
    InputControlExtensions.CopyState<TState>(InputDevice, out TState)
    In This Article
    Back to top
    Copyright © 2024 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)