PressableButton Class

Definition

The core behavior logic for a button that can be pressed, following the StatefulInteractable pattern.

C#
[UnityEngine.AddComponentMenu("MRTK/UX/Pressable Button")]
public class PressableButton : MixedReality.Toolkit.StatefulInteractable
C#
[UnityEngine.AddComponentMenu("MRTK/UX/Pressable Button")]
public class PressableButton : MixedReality.Toolkit.StatefulInteractable, MixedReality.Toolkit.Input.IXRProximityInteractable
Inheritance
UnityEngine.XR.Interaction.Toolkit.XRBaseInteractable
PressableButton
Attributes
UnityEngine.AddComponentMenuAttribute
Implements

Remarks

This script does not make any assumptions about the visuals associated with this button. Any visuals script can listen to the GetSelectionProgress() value, or call PushPlaneLocalPosition() to obtain a selection progress value or a local displacement, respectively, to implement a visual layer.

Constructors

Properties

AllowSelectByVoice

Does the interactable allow triggering select via a voice command? If true, voice command can be used to trigger "select" on the interactable

(Inherited from StatefulInteractable)
DeselectThreshold

The threshold of selection progress at which the interactable will be deselected.

(Inherited from StatefulInteractable)
DistanceSpaceMode

Describes in which coordinate space the plane distances are stored and calculated

EndPushPlane

Maximum push distance. Distance is relative to the pivot of either the moving visuals if there's any or the button itself.

EnforceFrontPush

Ensures that the button can only be pushed from the front. Touching the button from the back or side is prevented.

FarDwellTime

Time required for far ray dwell

(Inherited from StatefulInteractable)
GazeDwellTime

Time required for gaze dwell

(Inherited from StatefulInteractable)
HoveringGazeInteractors

(Read Only) The list of IGazeInteractor components currently gazing this object.

(Inherited from MRTKBaseInteractable)
HoveringGazePinchInteractors

(Read Only) The list of IGazePinchInteractor components currently hovering this object.

(Inherited from MRTKBaseInteractable)
HoveringGrabInteractors

(Read Only) The list of IGrabInteractor components currently hovering this object.

(Inherited from MRTKBaseInteractable)
HoveringPokeInteractors

(Read Only) The list of IPokeInteractor components currently hovering this object.

(Inherited from MRTKBaseInteractable)
HoveringRayInteractors

(Read Only) The list of IRayInteractor components currently hovering this object.

(Inherited from MRTKBaseInteractable)
IsActiveHovered

Is this object hovered by any interactor other than passive targeting interactors?

(Inherited from MRTKBaseInteractable)
IsGazeHovered

Is this object hovered by any gaze interactor?

(Inherited from MRTKBaseInteractable)
IsGazePinchHovered

Is this object hovered by a gaze-pinch interactor?

(Inherited from MRTKBaseInteractable)
IsGazePinchSelected

Is this object selected by a gaze-pinch interactor?

(Inherited from MRTKBaseInteractable)
IsGrabHovered

Is this object hovered by a grab interactor?

(Inherited from MRTKBaseInteractable)
IsGrabSelected

Is this object selected by a grab interactor?

(Inherited from MRTKBaseInteractable)
IsPokeHovered

Is this object hovered by a near touch/poke interactor?

(Inherited from MRTKBaseInteractable)
IsPokeSelected

Is this object selected by a poke interactor?

(Inherited from MRTKBaseInteractable)
IsProximityHovered

Is this object in proximity of an active Interactor?

IsRayHovered

Is this object hovered by a non-gaze ray interactor?

(Inherited from MRTKBaseInteractable)
IsRaySelected

Is this object selected by a non-gaze ray interactor?

(Inherited from MRTKBaseInteractable)
IsToggled

Is the interactable toggled?

(Inherited from StatefulInteractable)
OnClicked

Fired when the interactable is fully clicked (select + deselect)

(Inherited from StatefulInteractable)
OnDisabled

Fired when the interactable is disabled

(Inherited from StatefulInteractable)
OnEnabled

Fired when the interactable is enabled

(Inherited from StatefulInteractable)
RejectXYRollOff

Ensures that the button click event only fires if the push did not roll off the edge of the button in the XY plane. Defaults to true.

RejectZRollOff

Ensures that the button click event only fires if the finger exited the button out the back instead of through the front plate. Defaults to false.

RollOffXYDepth

/ If RejectXYRollOff is enabled, roll-offs will be rejected within this normalized press amount of the back plane.

SelectingGazePinchInteractors

(Read Only) The list of IGazePinchInteractor components currently selecting this object.

(Inherited from MRTKBaseInteractable)
SelectingGrabInteractors

(Read Only) The list of IGrabInteractor components currently selecting this object.

(Inherited from MRTKBaseInteractable)
SelectRequiresHover

Does the interactable require the interactor to hover over it? If true, then the OnClick event will only get fired while this Interactable is being hovered.

(Inherited from StatefulInteractable)
SelectThreshold

The threshold of selection progress at which the interactable will be selected.

(Inherited from StatefulInteractable)
SmoothSelectionProgress

Should this button's selectionProgress be smoothed/animated, or absolute?

SpeechRecognitionKeyword

Speech keyword required for triggering "select" on the interactable

(Inherited from StatefulInteractable)
StartPushPlane

The local z-position of the push plane.

ToggleMode

The toggle behavior of the interactable. Set OneWayToggle for radio buttons.

(Inherited from StatefulInteractable)
TriggerOnRelease

Should the user be required to fully select and deselect the interactable for Click and Toggle to fire?

(Inherited from StatefulInteractable)
UseFarDwell

Should hovering the object with a far ray for a certain amount of time select it?

(Inherited from StatefulInteractable)
UseGazeDwell

Should gazing at the object for a certain amount of time select it?

(Inherited from StatefulInteractable)
VoiceRequiresFocus

Does the voice command require this to have focus? If true, then the voice command will only respond to voice commands while this Interactable has focus.

(Inherited from StatefulInteractable)

Methods

ApplyRequiredSettings()

Invoked on PressableButton, Awake(), and Reset() to apply required settings to this PressableButton instance.

Awake()

A Unity event function that is called when an enabled script instance is being loaded.

CanClickOnFirstSelectEntered(SelectEnterEventArgs)

This function determines whether the interactable should fire a click event at a given select event. Subclasses can override this to add additional requirements for full click/toggle activation, such as roll-off prevention.

CanClickOnLastSelectExited(SelectExitEventArgs)

This function determines whether the interactable should fire a click event at a given deselect event. Subclasses can override this to add additional requirements for full click/toggle activation, such as roll-off prevention.

DisableInteractorType(SystemInterfaceType)

Adds the specified type to the set of interactors which cannot select this interactable

(Inherited from MRTKBaseInteractable)
EnableInteractorType(SystemInterfaceType)

Removes the specified type to the set of interactors which cannot select this interactable

(Inherited from MRTKBaseInteractable)
ForceSetToggled(Boolean, Boolean)

Forcibly toggle the interactable.

(Inherited from StatefulInteractable)
ForceSetToggled(Boolean)

Forcibly toggle the interactable and fire the relevant events. This is a single-arg overload for ForceSetToggled for use with UnityEvents. Consider using ForceSetToggled(bool, bool) instead, especially if you'd like to suppress the resulting toggle events.

(Inherited from StatefulInteractable)
GetDistanceAlongPushDirection(Vector3)

Returns the local/global distance along the push direction for the passed in world position

GetLocalPositionAlongPushDirection(Single)

Returns local position along the push direction for the given local/global distance

GetSelectionProgress()

Get the current selection progress of this StatefulInteractable.

IsHoverableBy(IXRHoverInteractor) (Inherited from MRTKBaseInteractable)
IsInteractorTypeValid(IXRInteractor)

Is the given type of interactor permitted to interact with this interactable?

(Inherited from MRTKBaseInteractable)
IsSelectableBy(IXRSelectInteractor) UnityEngine.XR.Interaction.Toolkit.XRBaseInteractable.IsSelectableBy(UnityEngine.XR.Interaction.Toolkit.IXRSelectInteractor)
OnDestroy()

A Unity event function that is called when the script component has been destroyed.

(Inherited from StatefulInteractable)
OnDisable()

A Unity event function that is called when the script component has been disabled.

OnEnable()

A Unity event function that is called when the script component has been enabled.

(Inherited from StatefulInteractable)
OnFirstSelectEntered(SelectEnterEventArgs) (Inherited from StatefulInteractable)
OnHoverEntered(HoverEnterEventArgs) UnityEngine.XR.Interaction.Toolkit.XRBaseInteractable.OnHoverEntered(UnityEngine.XR.Interaction.Toolkit.HoverEnterEventArgs)
OnHoverEntering(HoverEnterEventArgs) (Inherited from MRTKBaseInteractable)
OnHoverExited(HoverExitEventArgs) UnityEngine.XR.Interaction.Toolkit.XRBaseInteractable.OnHoverExited(UnityEngine.XR.Interaction.Toolkit.HoverExitEventArgs)
OnHoverExiting(HoverExitEventArgs) (Inherited from MRTKBaseInteractable)
OnLastSelectExited(SelectExitEventArgs) (Inherited from StatefulInteractable)
OnProximityEntered(ProximityEnteredEventArgs)

Registers the Detector as triggering proximity.

OnProximityExited(ProximityExitedEventArgs)

Unregisters the Detector as triggering proximity.

OnSelectEntering(SelectEnterEventArgs) (Inherited from MRTKBaseInteractable)
OnSelectExiting(SelectExitEventArgs) (Inherited from MRTKBaseInteractable)
ProcessInteractable(XRInteractionUpdateOrder+UpdatePhase) UnityEngine.XR.Interaction.Toolkit.XRBaseInteractable.ProcessInteractable(UnityEngine.XR.Interaction.Toolkit.XRInteractionUpdateOrder.UpdatePhase)
PushPlaneLocalPosition()

Returns the position of the front press plane of the button, using the overall selectionProgress of the button, which includes all forms of selection enabled on the interactable.

Reset()

A Unity event function that is called when the script should reset it's default values

TryGetPressProgress(Single)

Retrieves the 0..1 amount that the button is currently directly compressed by a finger. Returns true if at least one finger is actively pressing the button; false otherwise.

Applies to

Proizvod Verzije
MRTK3 UX Core 3.0, 3.1, 3.2