Various extension methods for InputControl. Mostly low-level routines.
 
Inheritance
System.Object
InputControlExtensions
 
public static class InputControlExtensions
 
Methods
  
Declaration
public static bool CheckStateIsAtDefault(this InputControl control)
 
Parameters
Returns
| Type | 
Description | 
| System.Boolean | 
 | 
Check if the given state corresponds to the default state of the control.
 
Declaration
public static bool CheckStateIsAtDefault(this InputControl control, void *statePtr, void *maskPtr = default(void *))
 
Parameters
| Type | 
Name | 
Description | 
| InputControl | 
control | 
 | 
| System.Void* | 
statePtr | 
Pointer to a state buffer containing the stateBlock for control. 
 | 
| System.Void* | 
maskPtr | 
If not null, only bits set to true in the buffer will be taken into account. This can be used
to mask out noise. 
 | 
Returns
| Type | 
Description | 
| System.Boolean | 
True if the control/device is in its default state. 
 | 
UnityEngine.InputSystem.LowLevel.InputStateBuffers.defaultStateBuffer
 
Declaration
public static bool CheckStateIsAtDefaultIgnoringNoise(this InputControl control)
 
Parameters
Returns
| Type | 
Description | 
| System.Boolean | 
 | 
Declaration
public static bool CheckStateIsAtDefaultIgnoringNoise(this InputControl control, void *statePtr)
 
Parameters
| Type | 
Name | 
Description | 
| InputControl | 
control | 
 | 
| System.Void* | 
statePtr | 
 | 
Returns
| Type | 
Description | 
| System.Boolean | 
 | 
Declaration
public static bool CompareState(this InputControl control, void *statePtr, void *maskPtr = default(void *))
 
Parameters
| Type | 
Name | 
Description | 
| InputControl | 
control | 
 | 
| System.Void* | 
statePtr | 
 | 
| System.Void* | 
maskPtr | 
 | 
Returns
| Type | 
Description | 
| System.Boolean | 
 | 
Compare the control's stored state in firstStatePtr to secondStatePtr.
 
Declaration
public static bool CompareState(this InputControl control, void *firstStatePtr, void *secondStatePtr, void *maskPtr = default(void *))
 
Parameters
| Type | 
Name | 
Description | 
| InputControl | 
control | 
 | 
| System.Void* | 
firstStatePtr | 
Memory containing the control's stateBlock. 
 | 
| System.Void* | 
secondStatePtr | 
Memory containing the control's stateBlock 
 | 
| System.Void* | 
maskPtr | 
Optional mask. If supplied, it will be used to mask the comparison between
firstStatePtr and secondStatePtr such that any bit not set in the
mask will be ignored even if different between the two states. This can be used, for example, to ignore
noise in the state (noiseMaskPtr). 
 | 
Returns
| Type | 
Description | 
| System.Boolean | 
True if the state is equivalent in both memory buffers. 
 | 
Compare the control's current state to the state stored in statePtr.
 
Declaration
public static bool CompareStateIgnoringNoise(this InputControl control, void *statePtr)
 
Parameters
| Type | 
Name | 
Description | 
| InputControl | 
control | 
 | 
| System.Void* | 
statePtr | 
State memory containing the control's . 
 | 
Returns
| Type | 
Description | 
| System.Boolean | 
True if  
 | 
Declaration
public static void FindControlsRecursive<TControl>(this InputControl parent, IList<TControl> controls, Func<TControl, bool> predicate)
    where TControl : InputControl
 
Parameters
| Type | 
Name | 
Description | 
| InputControl | 
parent | 
 | 
| System.Collections.Generic.IList<TControl> | 
controls | 
 | 
| System.Func<TControl, System.Boolean> | 
predicate | 
 | 
Type Parameters
| Name | 
Description | 
| TControl | 
 | 
Declaration
public static void *GetStatePtrFromStateEvent(this InputControl control, InputEventPtr eventPtr)
 
Parameters
Returns
| Type | 
Description | 
| System.Void* | 
 | 
Declaration
public static bool HasValueChangeInEvent(this InputControl control, InputEventPtr eventPtr)
 
Parameters
Returns
| Type | 
Description | 
| System.Boolean | 
 | 
Return true if the actual value
 
Declaration
public static bool HasValueChangeInState(this InputControl control, void *statePtr)
 
Parameters
| Type | 
Name | 
Description | 
| InputControl | 
control | 
 | 
| System.Void* | 
statePtr | 
 | 
Returns
| Type | 
Description | 
| System.Boolean | 
 | 
Return true if the given control is actuated.
 
Declaration
public static bool IsActuated(this InputControl control, float threshold = 0F)
 
Parameters
| Type | 
Name | 
Description | 
| InputControl | 
control | 
 | 
| System.Single | 
threshold | 
Magnitude threshold that the control must match or exceed to be considered actuated.
An exception to this is the default value of zero. If threshold is zero, the control must have a magnitude
greater than zero. 
 | 
Returns
| Type | 
Description | 
| System.Boolean | 
 | 
Queue a value change on the given control which will be processed and take effect
in the next input update.
 
Declaration
public static void QueueValueChange<TValue>(this InputControl<TValue> control, TValue value, double time = -1)
    where TValue : struct
 
Parameters
| Type | 
Name | 
Description | 
| InputControl<TValue> | 
control | 
Control to change the value of. 
 | 
| TValue | 
value | 
New value for the control. 
 | 
| System.Double | 
time | 
Optional time at which the value change should take effect. If set, this will become
the time of the queued event. If the time is in the future, the event will not
be processed until it falls within the time of an input update slice (except if 
is false, in which case the event will invariably be consumed in the next update). 
 | 
Type Parameters
| Name | 
Description | 
| TValue | 
Type of value. 
 | 
Exceptions
| Type | 
Condition | 
| System.ArgumentNullException | 
control is null. 
 | 
Read the control's default value and return it as an object.
 
Declaration
public static object ReadDefaultValueAsObject(this InputControl control)
 
Parameters
| Type | 
Name | 
Description | 
| InputControl | 
control | 
Control to read default value from. 
 | 
Returns
| Type | 
Description | 
| System.Object | 
 | 
Exceptions
| Type | 
Condition | 
| System.ArgumentNullException | 
control is null. 
 | 
UnityEngine.InputSystem.InputControl.hasDefaultValue
 
Declaration
public static TValue ReadUnprocessedValueFromEvent<TValue>(this InputControl<TValue> control, InputEventPtr eventPtr)
    where TValue : struct
 
Parameters
Returns
Type Parameters
Declaration
public static bool ReadUnprocessedValueFromEvent<TValue>(this InputControl<TValue> control, InputEventPtr inputEvent, out TValue value)
    where TValue : struct
 
Parameters
Returns
| Type | 
Description | 
| System.Boolean | 
 | 
Type Parameters
Read the current value of the control and return it as an object.
 
Declaration
public static object ReadValueAsObject(this InputControl control)
 
Parameters
Returns
| Type | 
Description | 
| System.Object | 
 | 
Read the value of the given control from an event.
 
Declaration
public static bool ReadValueFromEvent<TValue>(this InputControl<TValue> control, InputEventPtr inputEvent, out TValue value)
    where TValue : struct
 
Parameters
| Type | 
Name | 
Description | 
| InputControl<TValue> | 
control | 
 | 
| InputEventPtr | 
inputEvent | 
Input event. This must be a StateEvent or DeltaStateEvent.
Note that in the case of a DeltaStateEvent, the control may not actually be part of the event. In this
case, the method returns false and stores default(TValue) in value. 
 | 
| TValue | 
value | 
Variable that receives the control value. 
 | 
Returns
| Type | 
Description | 
| System.Boolean | 
True if the value has been successfully read from the event, false otherwise. 
 | 
Type Parameters
Exceptions
| Type | 
Condition | 
| System.ArgumentNullException | 
control is null. 
 | 
Read the current, processed value of the control and store it into the given memory buffer.
 
Declaration
public static void ReadValueIntoBuffer(this InputControl control, void *buffer, int bufferSize)
 
Parameters
| Type | 
Name | 
Description | 
| InputControl | 
control | 
 | 
| System.Void* | 
buffer | 
Buffer to store value in. Note that the value is not stored with the offset
found in byteOffset of the control's stateBlock. It will
be stored directly at the given address. 
 | 
| System.Int32 | 
bufferSize | 
Size of the memory available at buffer in bytes. Has to be
at least valueSizeInBytes. If the size is smaller, nothing will be written to the buffer. 
 | 
Declaration
public static void WriteValueFromObjectIntoEvent(this InputControl control, InputEventPtr eventPtr, object value)
 
Parameters
Declaration
public static void WriteValueIntoEvent<TValue>(this InputControl control, TValue value, InputEventPtr eventPtr)
    where TValue : struct
 
Parameters
Type Parameters
Declaration
public static void WriteValueIntoEvent<TValue>(this InputControl<TValue> control, TValue value, InputEventPtr eventPtr)
    where TValue : struct
 
Parameters
Type Parameters
Write the control's current value into statePtr.
 
Declaration
public static void WriteValueIntoState(this InputControl control, void *statePtr)
 
Parameters
| Type | 
Name | 
Description | 
| InputControl | 
control | 
Control to read the current value from and to store state for in statePtr. 
 | 
| System.Void* | 
statePtr | 
State to receive the control's value in its respective stateBlock. 
 | 
Exceptions
| Type | 
Condition | 
| System.ArgumentNullException | 
control is null or statePtr is null. 
 | 
| System.NotSupportedException | 
The control does not support writing. This is the case, for
example, that compute values (such as the magnitude of a vector). 
 | 
Declaration
public static void WriteValueIntoState<TValue>(this InputControl control, TValue value, void *statePtr)
    where TValue : struct
 
Parameters
| Type | 
Name | 
Description | 
| InputControl | 
control | 
 | 
| TValue | 
value | 
 | 
| System.Void* | 
statePtr | 
 | 
Type Parameters
Declaration
public static void WriteValueIntoState<TValue>(this InputControl<TValue> control, TValue value, void *statePtr)
    where TValue : struct
 
Parameters
| Type | 
Name | 
Description | 
| InputControl<TValue> | 
control | 
 | 
| TValue | 
value | 
 | 
| System.Void* | 
statePtr | 
 | 
Type Parameters
Declaration
public static void WriteValueIntoState<TValue>(this InputControl<TValue> control, void *statePtr)
    where TValue : struct
 
Parameters
| Type | 
Name | 
Description | 
| InputControl<TValue> | 
control | 
 | 
| System.Void* | 
statePtr | 
 | 
Type Parameters
Declaration
public static void WriteValueIntoState<TValue, TState>(this InputControl<TValue> control, TValue value, ref TState state)
    where TValue : struct where TState : struct, IInputStateTypeInfo
 
Parameters
| Type | 
Name | 
Description | 
| InputControl<TValue> | 
control | 
 | 
| TValue | 
value | 
Value for control to write into state. 
 | 
| TState | 
state | 
 | 
Type Parameters
| Name | 
Description | 
| TValue | 
 | 
| TState | 
 | 
Exceptions
| Type | 
Condition | 
| System.ArgumentNullException | 
control is null. 
 | 
| System.ArgumentException | 
Control's value does not fit within the memory of state. 
 | 
| System.NotSupportedException | 
control does not support writing. 
 |