docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class XRInteractableSnapVolume

    Utility component for supporting interactors snapping to and selecting interactables. Add this component to a child GameObject of the interactable.

    Inheritance
    object
    Object
    Component
    Behaviour
    MonoBehaviour
    XRInteractableSnapVolume
    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.Interactables
    Assembly: Unity.XR.Interaction.Toolkit.dll
    Syntax
    [MovedFrom("UnityEngine.XR.Interaction.Toolkit")]
    [AddComponentMenu("XR/XR Interactable Snap Volume", 11)]
    [DefaultExecutionOrder(-99)]
    [HelpURL("https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@3.0/api/UnityEngine.XR.Interaction.Toolkit.Interactables.XRInteractableSnapVolume.html")]
    public class XRInteractableSnapVolume : MonoBehaviour
    Remarks

    Currently supports one collider as the snapping volume. To support multiple snap colliders for a single interactable, add multiple components with each using a different collider.

    Properties

    disableSnapColliderWhenSelected

    Automatically disable or enable the Snap Collider when the interactable is selected or deselected.

    Declaration
    public bool disableSnapColliderWhenSelected { get; set; }
    Property Value
    Type Description
    bool
    Remarks

    This behavior will always automatically disable the Snap Collider when this behavior is disabled.

    interactable

    The runtime IXRInteractable associated with this XRInteractableSnapVolume.

    Declaration
    public IXRInteractable interactable { get; set; }
    Property Value
    Type Description
    IXRInteractable

    interactableObject

    The IXRInteractable associated with this XRInteractableSnapVolume serialized as a Unity Object. If not set, Unity will find it up the hierarchy.

    Declaration
    public Object interactableObject { get; set; }
    Property Value
    Type Description
    Object
    Remarks

    Use this for Unity Editor scripting. Use interactable to change the interactable at runtime.

    interactionManager

    The XRInteractionManager that this snap volume will communicate with (will find one if null).

    Declaration
    public XRInteractionManager interactionManager { get; set; }
    Property Value
    Type Description
    XRInteractionManager

    snapCollider

    The trigger collider to associate with the interactable when it is hit/collided. Rays will snap from this to the snapToCollider.

    Declaration
    public Collider snapCollider { get; set; }
    Property Value
    Type Description
    Collider
    Remarks

    This should be larger than or positioned away from the snapToCollider. Changing this value at runtime does not alter the enabled state of the previous collider.

    See Also
    snapToCollider

    snapToCollider

    (Optional) The collider that will be used to find the closest point to snap to. If this is null, then the associated IXRInteractable transform's position or this GameObject's transform position will be used as the snap point.

    Declaration
    public Collider snapToCollider { get; set; }
    Property Value
    Type Description
    Collider
    See Also
    snapCollider

    Methods

    Awake()

    See MonoBehaviour.

    Declaration
    protected virtual void Awake()

    FindSnapCollider(GameObject)

    This method is responsible for finding a valid Collider component available. available. The first valid collider found will be used as the snapCollider.

    Declaration
    protected static Collider FindSnapCollider(GameObject gameObject)
    Parameters
    Type Name Description
    GameObject gameObject

    The GameObject to find the Collider component for.

    Returns
    Type Description
    Collider

    The best snap collider candidate for the provided GameObject.

    Remarks

    The snap collider must be a trigger collider, so the collider type can only be a BoxCollider, SphereCollider, CapsuleCollider, or convex MeshCollider.

    See Also
    convex
    snapCollider

    GetClosestPoint(Vector3)

    Tries to get the closest point on the associated snapping collider. If snapToCollider is null, it will return the transform position of the associated interactable. If both snapToCollider and interactable are null, it will return the transform position of this GameObject.

    Declaration
    public Vector3 GetClosestPoint(Vector3 point)
    Parameters
    Type Name Description
    Vector3 point

    The point for which we are trying to find the the nearest point on the snapToCollider.

    Returns
    Type Description
    Vector3

    The closest point on the snapToCollider if possible. Defaults to the interactable transform position if available, or the transform position of this GameObject.

    GetClosestPointOfAttachTransform(IXRInteractor)

    Tries to get the closest point on the associated snapping collider based on the attach transform position of the associated interactable. If snapToCollider is null, it will return the attach transform position of the associated interactable. If interactable is also null in that case, it will return the transform position of this GameObject.

    Declaration
    public Vector3 GetClosestPointOfAttachTransform(IXRInteractor interactor)
    Parameters
    Type Name Description
    IXRInteractor interactor

    The IXRInteractor interacting with the XRInteractableSnapVolume used to get the attach transform.

    Returns
    Type Description
    Vector3

    The closest point on the snapToCollider if possible. Defaults to the interactable attach transform position of the associated interactor if available, or the transform position of this GameObject.

    OnDisable()

    See MonoBehaviour.

    Declaration
    protected virtual void OnDisable()

    OnEnable()

    See MonoBehaviour.

    Declaration
    protected virtual void OnEnable()

    Reset()

    See MonoBehaviour.

    Declaration
    [Conditional("UNITY_EDITOR")]
    protected virtual void Reset()
    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)