Class SwitchProControllerHID
A Nintendo Switch Pro controller connected to a desktop mac/windows PC using the HID interface.
Inherited Members
Namespace: UnityEngine.InputSystem.Switch
Assembly: Unity.InputSystem.dll
Syntax
public class SwitchProControllerHID : Gamepad, IDualMotorRumble, IHaptics, IInputStateCallbackReceiver
Properties
captureButton
Declaration
public ButtonControl captureButton { get; protected set; }
Property Value
Type | Description |
---|---|
ButtonControl |
homeButton
Declaration
public ButtonControl homeButton { get; protected set; }
Property Value
Type | Description |
---|---|
ButtonControl |
Methods
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 |
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 |
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
OnAdded()
Called when the gamepad is added to the system.
Declaration
protected override void OnAdded()
Overrides
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
PreProcessEvent(InputEventPtr)
Preprocess the event. !!! Beware !!! currently events can only shrink or stay the same size.
Declaration
public bool PreProcessEvent(InputEventPtr eventPtr)
Parameters
Type | Name | Description |
---|---|---|
InputEventPtr | eventPtr |
Returns
Type | Description |
---|---|
bool | True if event should be processed further, false if event should be skipped and ignored. |