docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class ARTrackable<TSessionRelativeData, TTrackable>

    A generic component for trackables. A "trackable" is a feature in the physical environment that can be detected and tracked by an XR device.

    Inheritance
    object
    Object
    Component
    Behaviour
    MonoBehaviour
    ARTrackable
    ARTrackable<TSessionRelativeData, TTrackable>
    ARAnchor
    ARBoundingBox
    AREnvironmentProbe
    ARFace
    ARHumanBody
    ARParticipant
    ARPlane
    ARPointCloud
    ARRaycast
    ARTrackedImage
    ARTrackedObject
    Implements
    ITrackable
    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.StartCoroutine_Auto(IEnumerator)
    MonoBehaviour.StopCoroutine(IEnumerator)
    MonoBehaviour.StopCoroutine(Coroutine)
    MonoBehaviour.StopCoroutine(string)
    MonoBehaviour.StopAllCoroutines()
    MonoBehaviour.print(object)
    MonoBehaviour.destroyCancellationToken
    MonoBehaviour.useGUILayout
    MonoBehaviour.didStart
    MonoBehaviour.didAwake
    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.GetComponentIndex()
    Component.CompareTag(string)
    Component.CompareTag(TagHandle)
    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.InstantiateAsync<T>(T)
    Object.InstantiateAsync<T>(T, Transform)
    Object.InstantiateAsync<T>(T, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int)
    Object.InstantiateAsync<T>(T, int, Transform)
    Object.InstantiateAsync<T>(T, int, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, int, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, Transform, Vector3, Quaternion, CancellationToken)
    Object.InstantiateAsync<T>(T, int, Transform, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, int, Transform, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>, CancellationToken)
    Object.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    Object.Instantiate(Object, Scene)
    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.DestroyObject(Object, float)
    Object.DestroyObject(Object)
    Object.FindSceneObjectsOfType(Type)
    Object.FindObjectsOfTypeIncludingAssets(Type)
    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.FindObjectsOfTypeAll(Type)
    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.ARFoundation
    Assembly: Unity.XR.ARFoundation.dll
    Syntax
    public class ARTrackable<TSessionRelativeData, TTrackable> : ARTrackable, ITrackable where TSessionRelativeData : struct, ITrackable where TTrackable : ARTrackable<TSessionRelativeData, TTrackable>
    Type Parameters
    Name Description
    TSessionRelativeData

    The raw, session-relative data type used to update this trackable.

    TTrackable

    The concrete class which derives from ARTrackable<TSessionRelativeData, TTrackable>.

    Properties

    destroyOnRemoval

    If true, this component's GameObject will be removed immediately when the XR device reports this trackable is no longer tracked.

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

    Setting this to false will keep the GameObject around. You might want to do this, for example, if you have custom removal logic, such as a fade out.

    nativePtr

    The native pointer associated with this trackable.

    Declaration
    public override IntPtr nativePtr { get; }
    Property Value
    Type Description
    IntPtr

    The native pointer.

    Overrides
    ARTrackable.nativePtr
    Remarks

    The data pointed to by this pointer is defined by the provider plug-in implementation. Refer to the provider documentation for each platform your app supports to learn more about the value of this pointer on your target platform(s).

    pending

    Pending means the trackable was added manually (usually via an AddTrackable-style method on its manager) but has not yet been reported as added.

    Declaration
    public bool pending { get; }
    Property Value
    Type Description
    bool

    pose

    The Pose, in session space, associated with this trackable.

    Declaration
    public override Pose pose { get; }
    Property Value
    Type Description
    Pose

    The pose.

    Overrides
    ARTrackable.pose
    Examples

    Some ITrackable implementations are MonoBehaviours, and you can use the Transform component of their GameObjects to access the position and rotation of a trackable in Unity world space. For other trackables without associated GameObjects, you can convert a session-space pose to Unity world space if needed by using the example code below, assuming the XR Origin has a uniform scale of (1, 1, 1):

    var origin = FindAnyObjectByType<XROrigin>().transform;
    var originPose = new Pose(origin.position, origin.rotation);
    var worldSpacePose = pose.GetTransformedBy(xrOriginPose);

    sessionRelativeData

    The session-relative data associated with this trackable.

    Declaration
    protected TSessionRelativeData sessionRelativeData { get; }
    Property Value
    Type Description
    TSessionRelativeData

    trackableId

    The TrackableId associated with this trackable.

    Declaration
    public override TrackableId trackableId { get; }
    Property Value
    Type Description
    TrackableId

    The TrackableId.

    Overrides
    ARTrackable.trackableId

    trackingState

    The TrackingState associated with this trackable.

    Declaration
    public override TrackingState trackingState { get; }
    Property Value
    Type Description
    TrackingState

    The TrackingState.

    Overrides
    ARTrackable.trackingState

    Methods

    OnAfterSetSessionRelativeData()

    Invoked just after the session-relative data has been set. The GameObject's transform has already been updated. You may override this method to perform further updates specific to the derived trackable.

    Declaration
    protected virtual void OnAfterSetSessionRelativeData()

    Implements

    ITrackable
    In This Article
    Back to top
    Copyright © 2024 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)