docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class XRTargetFilter

    Target Filter that uses a list of evaluator objects to filter Interactable targets (candidates) returned by the Interactor each frame. You can edit the evaluator list and the evaluators properties in the Inspector.

    Inheritance
    object
    Object
    Component
    Behaviour
    MonoBehaviour
    XRBaseTargetFilter
    XRTargetFilter
    Implements
    IXRTargetFilter
    IEnumerable<XRTargetEvaluator>
    IEnumerable
    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.ReferenceEquals(object, object)
    Namespace: UnityEngine.XR.Interaction.Toolkit.Filtering
    Assembly: Unity.XR.Interaction.Toolkit.dll
    Syntax
    [AddComponentMenu("XR/XR Target Filter", 11)]
    [HelpURL("https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@3.1/api/UnityEngine.XR.Interaction.Toolkit.Filtering.XRTargetFilter.html")]
    public sealed class XRTargetFilter : XRBaseTargetFilter, IXRTargetFilter, IEnumerable<XRTargetEvaluator>, IEnumerable
    Remarks

    The virtual and abstract methods on the Target Evaluators are designed to be called by this Filter rather than being called directly by the user in order to maintain consistency between all objects involved in the filtering of an interaction.

    Properties

    canProcess

    Whether this Target Filter can process and filter targets. Filters that can process targets receive calls to Process(IXRInteractor, List<IXRInteractable>, List<IXRInteractable>), filters that cannot process do not.

    Declaration
    public override bool canProcess { get; }
    Property Value
    Type Description
    bool
    Overrides
    XRBaseTargetFilter.canProcess
    See Also
    XRTargetEvaluator
    targetFilter
    startingTargetFilter
    GetValidTargets(List<IXRInteractable>)

    evaluatorCount

    The number of evaluators this filter has.

    Declaration
    public int evaluatorCount { get; }
    Property Value
    Type Description
    int
    See Also
    XRTargetEvaluator
    targetFilter
    startingTargetFilter
    GetValidTargets(List<IXRInteractable>)

    Methods

    AddEvaluator(Type)

    Adds an instance of the given evaluator type to this filter.

    Declaration
    public XRTargetEvaluator AddEvaluator(Type evaluatorType)
    Parameters
    Type Name Description
    Type evaluatorType

    Type of the evaluator to be added.

    Returns
    Type Description
    XRTargetEvaluator

    The added evaluator or null if the instance could not be added.

    Remarks

    If the filter is processing the added evaluator will only participate from the next filtering process.

    See Also
    XRTargetEvaluator
    targetFilter
    startingTargetFilter
    GetValidTargets(List<IXRInteractable>)

    AddEvaluator<T>()

    Adds an instance of the given evaluator type to this filter.

    Declaration
    public T AddEvaluator<T>() where T : XRTargetEvaluator
    Returns
    Type Description
    T

    The added evaluator or null if the instance could not be added.

    Type Parameters
    Name Description
    T

    Type of the evaluator to be added.

    Remarks

    If the filter is processing the added evaluator will only participate from the next filtering process.

    See Also
    XRTargetEvaluator
    targetFilter
    startingTargetFilter
    GetValidTargets(List<IXRInteractable>)

    GetEnabledEvaluators(List<XRTargetEvaluator>)

    Returns the enabled evaluators in this filter.

    Declaration
    public void GetEnabledEvaluators(List<XRTargetEvaluator> results)
    Parameters
    Type Name Description
    List<XRTargetEvaluator> results

    List to receive the results.

    Remarks

    Clears results before adding to it.

    Exceptions
    Type Condition
    ArgumentNullException

    results is null.

    See Also
    XRTargetEvaluator
    targetFilter
    startingTargetFilter
    GetValidTargets(List<IXRInteractable>)

    GetEnumerator()

    Returns an enumerator to iterate through the evaluators in this Target Filter.

    Declaration
    public IEnumerator<XRTargetEvaluator> GetEnumerator()
    Returns
    Type Description
    IEnumerator<XRTargetEvaluator>

    Returns an IEnumerator object that can be used to iterate through the evaluators.

    See Also
    XRTargetEvaluator
    targetFilter
    startingTargetFilter
    GetValidTargets(List<IXRInteractable>)

    GetEvaluator(Type)

    Returns the first Target Evaluator of the specified type if this Target Filter has one.

    Declaration
    public XRTargetEvaluator GetEvaluator(Type type)
    Parameters
    Type Name Description
    Type type

    The Type of the Evaluator to retrieve.

    Returns
    Type Description
    XRTargetEvaluator

    Returns the first Evaluator of the specified type. Returns null if this Filter has no Evaluator of the specified Type in it.

    Exceptions
    Type Condition
    ArgumentNullException

    type is null.

    See Also
    GetEvaluator<T>()

    GetEvaluatorAt(int)

    Gets the evaluator in the given index.

    Declaration
    public XRTargetEvaluator GetEvaluatorAt(int index)
    Parameters
    Type Name Description
    int index

    Index of the evaluator to return. Must be smaller than evaluatorCount and not negative.

    Returns
    Type Description
    XRTargetEvaluator

    The evaluator in the given index.

    Remarks

    The total number of evaluators can be provided by evaluatorCount.

    See Also
    XRTargetEvaluator
    targetFilter
    startingTargetFilter
    GetValidTargets(List<IXRInteractable>)

    GetEvaluator<T>()

    Returns the first Target Evaluator of the specified Type if this Target Filter has one.

    Declaration
    public T GetEvaluator<T>()
    Returns
    Type Description
    T

    Returns the first Evaluator of the specified Type. Returns null if this Filter has no Evaluator of the specified Type in it.

    Type Parameters
    Name Description
    T

    The Type of the Evaluator to retrieve.

    Remarks

    Generic version of GetEvaluator(Type).

    See Also
    XRTargetEvaluator
    targetFilter
    startingTargetFilter
    GetValidTargets(List<IXRInteractable>)

    GetEvaluators(List<XRTargetEvaluator>)

    Returns the evaluators in this filter.

    Declaration
    public void GetEvaluators(List<XRTargetEvaluator> results)
    Parameters
    Type Name Description
    List<XRTargetEvaluator> results

    List to receive the results.

    Remarks

    Clears results before adding to it.

    Exceptions
    Type Condition
    ArgumentNullException

    results is null.

    See Also
    XRTargetEvaluator
    targetFilter
    startingTargetFilter
    GetValidTargets(List<IXRInteractable>)

    GetLinkedInteractors(List<IXRInteractor>)

    Returns the Interactors linked to this filter.

    Declaration
    public void GetLinkedInteractors(List<IXRInteractor> results)
    Parameters
    Type Name Description
    List<IXRInteractor> results

    List to receive the results.

    Remarks

    Clears results before adding to it.

    Exceptions
    Type Condition
    ArgumentNullException

    results is null.

    See Also
    XRTargetEvaluator
    targetFilter
    startingTargetFilter
    GetValidTargets(List<IXRInteractable>)

    Link(IXRInteractor)

    Called by Unity when the given Interactor links to this filter. Use this to do any code initialization for the given Interactor.

    Declaration
    public override void Link(IXRInteractor interactor)
    Parameters
    Type Name Description
    IXRInteractor interactor

    The Interactor being linked to this filter.

    Overrides
    XRBaseTargetFilter.Link(IXRInteractor)
    See Also
    XRTargetEvaluator
    targetFilter
    startingTargetFilter
    GetValidTargets(List<IXRInteractable>)

    MoveEvaluatorTo(XRTargetEvaluator, int)

    Moves the given evaluator to the given index.

    Declaration
    public void MoveEvaluatorTo(XRTargetEvaluator evaluator, int newIndex)
    Parameters
    Type Name Description
    XRTargetEvaluator evaluator

    Evaluator to update the index.

    int newIndex

    New index of the evaluator.

    See Also
    XRTargetEvaluator
    targetFilter
    startingTargetFilter
    GetValidTargets(List<IXRInteractable>)

    Process(IXRInteractor, List<IXRInteractable>, List<IXRInteractable>)

    Called by the linked Interactor to filter the Interactables that it could possibly interact with this frame. Implement your custom logic to filter the Interactable candidates in this method.

    Declaration
    public override void Process(IXRInteractor interactor, List<IXRInteractable> targets, List<IXRInteractable> results)
    Parameters
    Type Name Description
    IXRInteractor interactor

    The linked Interactor whose Interactable candidates (or targets) are being filtered.

    List<IXRInteractable> targets

    The read only list of candidate Interactables to filter. This list should not be modified.

    List<IXRInteractable> results

    The results list to populate with the filtered results. This list should be sorted by priority (with highest priority first).

    Overrides
    XRBaseTargetFilter.Process(IXRInteractor, List<IXRInteractable>, List<IXRInteractable>)
    Remarks

    It's recommended to call this from an implementation of GetValidTargets(List<IXRInteractable>).

    Exceptions
    Type Condition
    InvalidOperationException

    Throws when this filter is currently processing and filtering Interactables.

    See Also
    XRTargetEvaluator
    targetFilter
    startingTargetFilter
    GetValidTargets(List<IXRInteractable>)

    RemoveEvaluator(XRTargetEvaluator)

    Removes the given evaluator from this filter. The evaluator being removed is disabled and disposed.

    Declaration
    public void RemoveEvaluator(XRTargetEvaluator evaluator)
    Parameters
    Type Name Description
    XRTargetEvaluator evaluator

    Evaluator to be removed.

    Remarks

    You cannot call this method while the filter is processing.

    See Also
    XRTargetEvaluator
    targetFilter
    startingTargetFilter
    GetValidTargets(List<IXRInteractable>)

    RemoveEvaluatorAt(int)

    Removes the evaluator at the given index from this filter. The evaluator being removed is disabled and disposed.

    Declaration
    public void RemoveEvaluatorAt(int index)
    Parameters
    Type Name Description
    int index

    Index of the evaluator to be removed. Must be smaller than evaluatorCount and not negative.

    Remarks

    The total number of evaluators can be provided by evaluatorCount. You cannot call this method while the filter is processing.

    See Also
    XRTargetEvaluator
    targetFilter
    startingTargetFilter
    GetValidTargets(List<IXRInteractable>)

    Unlink(IXRInteractor)

    Called by Unity when the given Interactor unlinks from this filter. Use this to do any code cleanup for the given Interactor.

    Declaration
    public override void Unlink(IXRInteractor interactor)
    Parameters
    Type Name Description
    IXRInteractor interactor

    The Interactor being unlinked from this filter.

    Overrides
    XRBaseTargetFilter.Unlink(IXRInteractor)
    Remarks

    You cannot call this method while the filter is processing.

    Exceptions
    Type Condition
    InvalidOperationException

    Throws when this filter is currently processing and filtering Interactables.

    See Also
    XRTargetEvaluator
    targetFilter
    startingTargetFilter
    GetValidTargets(List<IXRInteractable>)

    Events

    interactorLinked

    Calls the methods in this invocation when this filter is linked to an Interactor.

    Declaration
    public event Action<IXRInteractor> interactorLinked
    Event Type
    Type Description
    Action<IXRInteractor>
    See Also
    Link(IXRInteractor)

    interactorUnlinked

    Calls the methods in this invocation when this filter is unlinked from an Interactor.

    Declaration
    public event Action<IXRInteractor> interactorUnlinked
    Event Type
    Type Description
    Action<IXRInteractor>
    See Also
    Unlink(IXRInteractor)

    Implements

    IXRTargetFilter
    IEnumerable<T>
    IEnumerable

    See Also

    XRTargetEvaluator
    targetFilter
    startingTargetFilter
    GetValidTargets(List<IXRInteractable>)
    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)