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 by the system when the device is added to devices.
Declaration
protected override void OnAdded()
Overrides
Remarks
This is called after the device has already been added. devicesAddedOnRemoved()
Examples
using UnityEngine.InputSystem;
public class MyDevice : InputDevice
{
public static MyDevice current { get; private set; }
protected override void OnAdded()
{
// use this context to assign the current device for instance
base.OnAdded();
current = this;
}
}
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. |