Class HandMenu
Makes a GameObject follow a tracked hand or motion controller with logic for setting visibility of the menu based on the palm orientation. This can be used, for example, to show a preferences menu when the user is looking at their palm.
Inherited Members
Namespace: UnityEngine .XR.Interaction.Toolkit.UI.BodyUI
Assembly: Unity.XR.Interaction.Toolkit.dll
Syntax
[AddComponentMenu("XR/Hand Menu", 22)]
[HelpURL("https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@3.1/api/UnityEngine.XR.Interaction.Toolkit.UI.BodyUI.HandMenu.html")]
public class HandMenu : MonoBehaviour
Remarks
This class makes the assumption that the tracked offset has the following orientation: When the user's palm is facing down with fingers pointing away from the user, y-axis is up, z-axis is forward, x-axis is right according to OpenXR.
Using controllers you will need different offsets. TODO: Disable GameObject automatically when hand tracking is lost.
Properties
animateMenuHideAndRevel
Duration of the reveal/hide animation in seconds.
Declaration
public bool animateMenuHideAndRevel { get; set; }
Property Value
Type | Description |
---|---|
bool |
handMenuUIGameObject
Child GameObject used to hold the hand menu UI. This is the transform that moves each frame.
Declaration
public GameObject handMenuUIGameObject { get; set; }
Property Value
Type | Description |
---|---|
Game |
handMenuUpDirection
Determines the up direction of the menu when the hand menu is looking at the camera.
Declaration
public HandMenu.UpDirection handMenuUpDirection { get; set; }
Property Value
Type | Description |
---|---|
Hand |
See Also
hideMenuOnSelect
Should the menu hide when a selection is made with the hand for which the menu is anchored to.
Declaration
public bool hideMenuOnSelect { get; set; }
Property Value
Type | Description |
---|---|
bool |
hideMenuWhenGazeDiverges
If true, menu will hide when gaze to menu origin's divergence angle is above the threshold. In other words, the menu will only show if looking roughly in it's direction.
Declaration
public bool hideMenuWhenGazeDiverges { get; set; }
Property Value
Type | Description |
---|---|
bool |
interactionManager
XR Interaction Manager used to determine if a hand is selecting. Will find one if null.
Used for hide
Declaration
public XRInteractionManager interactionManager { get; set; }
Property Value
Type | Description |
---|---|
XRInteraction |
See Also
leftPalmAnchor
Anchor associated with the left palm pose for the hand.
Declaration
public Transform leftPalmAnchor { get; set; }
Property Value
Type | Description |
---|---|
Transform |
maxFollowDistance
Maximum distance in meters from target before tween targets, when time threshold is reached.
Declaration
public float maxFollowDistance { get; set; }
Property Value
Type | Description |
---|---|
float |
menuHandedness
Which hand should the menu anchor to.
Declaration
public HandMenu.MenuHandedness menuHandedness { get; set; }
Property Value
Type | Description |
---|---|
Hand |
Remarks
See Also
menuVisibleGazeDivergenceThreshold
Only show menu if gaze to menu origin's divergence angle is below this value.
Declaration
public float menuVisibleGazeDivergenceThreshold { get; set; }
Property Value
Type | Description |
---|---|
float |
minFollowDistance
Minimum distance in meters from target before which tween starts.
Declaration
public float minFollowDistance { get; set; }
Property Value
Type | Description |
---|---|
float |
minToMaxDelaySeconds
Time required to elapse before the max distance allowed goes from the min distance to the max.
Declaration
public float minToMaxDelaySeconds { get; set; }
Property Value
Type | Description |
---|---|
float |
revealHideAnimationDuration
Duration of the reveal/hide animation in seconds.
Declaration
public float revealHideAnimationDuration { get; set; }
Property Value
Type | Description |
---|---|
float |
rightPalmAnchor
Anchor associated with the right palm pose for the hand.
Declaration
public Transform rightPalmAnchor { get; set; }
Property Value
Type | Description |
---|---|
Transform |
Methods
Awake()
See Mono
Declaration
protected void Awake()
LateUpdate()
See Mono
Declaration
protected void LateUpdate()
OnDestroy()
See Mono
Declaration
protected void OnDestroy()
OnDisable()
See Mono
Declaration
protected void OnDisable()
OnEnable()
See Mono
Declaration
protected void OnEnable()
OnValidate()
See Mono
Declaration
protected void OnValidate()