docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    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.

    Inheritance
    object
    Object
    Component
    Behaviour
    MonoBehaviour
    HandMenu
    Inherited Members
    MonoBehaviour.IsInvoking()
    MonoBehaviour.CancelInvoke()
    MonoBehaviour.Invoke(string, float)
    MonoBehaviour.InvokeRepeating(string, float, float)
    MonoBehaviour.CancelInvoke(string)
    MonoBehaviour.IsInvoking(string)
    MonoBehaviour.StartCoroutine(string)
    MonoBehaviour.StartCoroutine(string, object)
    MonoBehaviour.StartCoroutine(IEnumerator)
    MonoBehaviour.StopCoroutine(IEnumerator)
    MonoBehaviour.StopCoroutine(Coroutine)
    MonoBehaviour.StopCoroutine(string)
    MonoBehaviour.StopAllCoroutines()
    MonoBehaviour.print(object)
    MonoBehaviour.useGUILayout
    MonoBehaviour.runInEditMode
    Behaviour.enabled
    Behaviour.isActiveAndEnabled
    Component.GetComponent(Type)
    Component.GetComponent<T>()
    Component.TryGetComponent(Type, out Component)
    Component.TryGetComponent<T>(out T)
    Component.GetComponent(string)
    Component.GetComponentInChildren(Type, bool)
    Component.GetComponentInChildren(Type)
    Component.GetComponentInChildren<T>(bool)
    Component.GetComponentInChildren<T>()
    Component.GetComponentsInChildren(Type, bool)
    Component.GetComponentsInChildren(Type)
    Component.GetComponentsInChildren<T>(bool)
    Component.GetComponentsInChildren<T>(bool, List<T>)
    Component.GetComponentsInChildren<T>()
    Component.GetComponentsInChildren<T>(List<T>)
    Component.GetComponentInParent(Type, bool)
    Component.GetComponentInParent(Type)
    Component.GetComponentInParent<T>(bool)
    Component.GetComponentInParent<T>()
    Component.GetComponentsInParent(Type, bool)
    Component.GetComponentsInParent(Type)
    Component.GetComponentsInParent<T>(bool)
    Component.GetComponentsInParent<T>(bool, List<T>)
    Component.GetComponentsInParent<T>()
    Component.GetComponents(Type)
    Component.GetComponents(Type, List<Component>)
    Component.GetComponents<T>(List<T>)
    Component.GetComponents<T>()
    Component.CompareTag(string)
    Component.SendMessageUpwards(string, object, SendMessageOptions)
    Component.SendMessageUpwards(string, object)
    Component.SendMessageUpwards(string)
    Component.SendMessageUpwards(string, SendMessageOptions)
    Component.SendMessage(string, object)
    Component.SendMessage(string)
    Component.SendMessage(string, object, SendMessageOptions)
    Component.SendMessage(string, SendMessageOptions)
    Component.BroadcastMessage(string, object, SendMessageOptions)
    Component.BroadcastMessage(string, object)
    Component.BroadcastMessage(string)
    Component.BroadcastMessage(string, SendMessageOptions)
    Component.transform
    Component.gameObject
    Component.tag
    Object.GetInstanceID()
    Object.GetHashCode()
    Object.Equals(object)
    Object.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    Object.Instantiate(Object, Transform)
    Object.Instantiate(Object, Transform, bool)
    Object.Instantiate<T>(T)
    Object.Instantiate<T>(T, Vector3, Quaternion)
    Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
    Object.Instantiate<T>(T, Transform)
    Object.Instantiate<T>(T, Transform, bool)
    Object.Destroy(Object, float)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, bool)
    Object.DestroyImmediate(Object)
    Object.FindObjectsOfType(Type)
    Object.FindObjectsOfType(Type, bool)
    Object.FindObjectsByType(Type, FindObjectsSortMode)
    Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode)
    Object.DontDestroyOnLoad(Object)
    Object.FindObjectsOfType<T>()
    Object.FindObjectsByType<T>(FindObjectsSortMode)
    Object.FindObjectsOfType<T>(bool)
    Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)
    Object.FindObjectOfType<T>()
    Object.FindObjectOfType<T>(bool)
    Object.FindFirstObjectByType<T>()
    Object.FindAnyObjectByType<T>()
    Object.FindFirstObjectByType<T>(FindObjectsInactive)
    Object.FindAnyObjectByType<T>(FindObjectsInactive)
    Object.FindObjectOfType(Type)
    Object.FindFirstObjectByType(Type)
    Object.FindAnyObjectByType(Type)
    Object.FindObjectOfType(Type, bool)
    Object.FindFirstObjectByType(Type, FindObjectsInactive)
    Object.FindAnyObjectByType(Type, FindObjectsInactive)
    Object.ToString()
    Object.name
    Object.hideFlags
    object.Equals(object, object)
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    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.3/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
    GameObject

    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
    HandMenu.UpDirection
    See Also
    HandMenu.UpDirection

    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 hideMenuOnSelect.

    Declaration
    public XRInteractionManager interactionManager { get; set; }
    Property Value
    Type Description
    XRInteractionManager
    See Also
    IsHandSelecting(InteractorHandedness)

    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
    HandMenu.MenuHandedness
    Remarks

    None will disable the hand menu. Either will try to follow the first hand to meet requirements.

    See Also
    HandMenu.MenuHandedness

    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 MonoBehaviour.

    Declaration
    protected void Awake()

    LateUpdate()

    See MonoBehaviour.

    Declaration
    protected void LateUpdate()

    OnDestroy()

    See MonoBehaviour.

    Declaration
    protected void OnDestroy()

    OnDisable()

    See MonoBehaviour.

    Declaration
    protected void OnDisable()

    OnEnable()

    See MonoBehaviour.

    Declaration
    protected void OnEnable()

    OnValidate()

    See MonoBehaviour.

    Declaration
    protected void OnValidate()
    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)