Class XRInputDeviceButtonReader
An adapter component that provides a bool and float value from a device from the XR input subsystem as defined by its characteristics and feature usage string. Intended to be used with an XRInputButtonReader as its object reference.
Inherited Members
Namespace: UnityEngine.XR.Interaction.Toolkit.Inputs.Readers
Assembly: Unity.XR.Interaction.Toolkit.dll
Syntax
[AddComponentMenu("XR/Input/XR Input Device Button Reader", 11)]
[HelpURL("https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@3.0/api/UnityEngine.XR.Interaction.Toolkit.Inputs.Readers.XRInputDeviceButtonReader.html")]
[DefaultExecutionOrder(-31000)]
public sealed class XRInputDeviceButtonReader : MonoBehaviour, IXRInputButtonReader, IXRInputValueReader<float>, IXRInputValueReader
Properties
boolValueReader
The value that is read to determine whether the button is down.
Declaration
public XRInputDeviceBoolValueReader boolValueReader { get; set; }
Property Value
Type | Description |
---|---|
XRInputDeviceBoolValueReader |
floatValueReader
The value that is read to determine the scalar value that varies from 0 to 1.
Declaration
public XRInputDeviceFloatValueReader floatValueReader { get; set; }
Property Value
Type | Description |
---|---|
XRInputDeviceFloatValueReader |
Methods
ReadIsPerformed()
Read whether the button is currently performed, which typically means whether the button is being pressed. This is typically true for multiple frames.
Declaration
public bool ReadIsPerformed()
Returns
Type | Description |
---|---|
bool | Returns true if the button is performed. Otherwise, returns false. |
Remarks
For input actions, this depends directly on the interaction(s) driving the action (including the default interaction if no specific interaction has been added to the action or binding).
ReadValue()
Read the current value from the input source.
Declaration
public float ReadValue()
Returns
Type | Description |
---|---|
float | Returns the current value from the input source. May return |
ReadWasCompletedThisFrame()
Read whether the button completed this frame, which typically means whether the button stopped being pressed during this frame. This is typically only true for one single frame.
Declaration
public bool ReadWasCompletedThisFrame()
Returns
Type | Description |
---|---|
bool | Returns true if the button completed this frame. Otherwise, returns false. |
Remarks
For input actions, this depends directly on the interaction(s) driving the action (including the default interaction if no specific interaction has been added to the action or binding).
ReadWasPerformedThisFrame()
Read whether the button performed this frame, which typically means whether the button started being pressed during this frame. This is typically only true for one single frame.
Declaration
public bool ReadWasPerformedThisFrame()
Returns
Type | Description |
---|---|
bool | Returns true if the button performed this frame. Otherwise, returns false. |
Remarks
For input actions, this depends directly on the interaction(s) driving the action (including the default interaction if no specific interaction has been added to the action or binding).
TryReadValue(out float)
Try to read the current value from the input source.
Declaration
public bool TryReadValue(out float value)
Parameters
Type | Name | Description |
---|---|---|
float | value | When this method returns, contains the current value from the input source. May return |
Returns
Type | Description |
---|---|
bool | Returns true if the current value was able to be read (and for actions, also if in progress). |
Remarks
You can use the return value of this method instead of only using ReadValue() in order to avoid doing
any work when the input action is not in progress, such as when the control is not actuated.
This can be useful for performance reasons.
If an input processor on an input action returns a different value from the default float
when the input action is not in progress, the outvalue
returned by
this method may not be default(TValue)
as is typically the case for Try
- methods. If you need
to support processors that return a different value from the default when the control is not actuated,
you should use ReadValue() instead of using the return value of this method to skip input handling.