docs.unity3d.com
    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
    Inherited Members
    MonoBehaviour.IsInvoking()
    MonoBehaviour.CancelInvoke()
    MonoBehaviour.Invoke(String, Single)
    MonoBehaviour.InvokeRepeating(String, Single, Single)
    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.useGUILayout
    MonoBehaviour.runInEditMode
    Behaviour.enabled
    Behaviour.isActiveAndEnabled
    Component.GetComponent(Type)
    Component.GetComponent<T>()
    Component.TryGetComponent(Type, Component)
    Component.TryGetComponent<T>(T)
    Component.GetComponent(String)
    Component.GetComponentInChildren(Type, Boolean)
    Component.GetComponentInChildren(Type)
    Component.GetComponentInChildren<T>(Boolean)
    Component.GetComponentInChildren<T>()
    Component.GetComponentsInChildren(Type, Boolean)
    Component.GetComponentsInChildren(Type)
    Component.GetComponentsInChildren<T>(Boolean)
    Component.GetComponentsInChildren<T>(Boolean, List<T>)
    Component.GetComponentsInChildren<T>()
    Component.GetComponentsInChildren<T>(List<T>)
    Component.GetComponentInParent(Type)
    Component.GetComponentInParent<T>()
    Component.GetComponentsInParent(Type, Boolean)
    Component.GetComponentsInParent(Type)
    Component.GetComponentsInParent<T>(Boolean)
    Component.GetComponentsInParent<T>(Boolean, 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
    Component.rigidbody
    Component.rigidbody2D
    Component.camera
    Component.light
    Component.animation
    Component.constantForce
    Component.renderer
    Component.audio
    Component.networkView
    Component.collider
    Component.collider2D
    Component.hingeJoint
    Component.particleSystem
    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, Boolean)
    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, Boolean)
    Object.Destroy(Object, Single)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, Boolean)
    Object.DestroyImmediate(Object)
    Object.FindObjectsOfType(Type)
    Object.DontDestroyOnLoad(Object)
    Object.DestroyObject(Object, Single)
    Object.DestroyObject(Object)
    Object.FindSceneObjectsOfType(Type)
    Object.FindObjectsOfTypeIncludingAssets(Type)
    Object.FindObjectsOfType<T>()
    Object.FindObjectOfType<T>()
    Object.FindObjectsOfTypeAll(Type)
    Object.FindObjectOfType(Type)
    Object.ToString()
    Object.name
    Object.hideFlags
    Object.Equals(Object, Object)
    Object.ReferenceEquals(Object, Object)
    Object.GetType()
    Object.MemberwiseClone()
    Namespace: UnityEngine.XR.Interaction.Toolkit.Filtering
    Syntax
    [AddComponentMenu("XR/XR Target Filter", 11)]
    [HelpURL("https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@2.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
    Boolean
    Overrides
    XRBaseTargetFilter.canProcess

    evaluatorCount

    The number of evaluators this filter has.

    Declaration
    public int evaluatorCount { get; }
    Property Value
    Type Description
    Int32

    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.

    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.

    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.

    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.

    Implements
    IEnumerable<T>.GetEnumerator()

    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>()

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

    GetEvaluatorAt(Int32)

    Gets the evaluator in the given index.

    Declaration
    public XRTargetEvaluator GetEvaluatorAt(int index)
    Parameters
    Type Name Description
    Int32 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.

    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.

    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.

    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)

    MoveEvaluatorTo(XRTargetEvaluator, Int32)

    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.

    Int32 newIndex

    New index of the evaluator.

    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

    For each Interactable (in the given targets list), the evaluator list is processed in order.
    Each enabled evaluator calculates an interaction score for the supplied Interactable. A 0 or negative score immediately stops the processing for the current Interactable.
    These scores are multiplied together to get the final interaction score for the Interactable. A negative final score excludes the Interactable as a candidate for interaction (it won't added to the results list).
    This final score is then used to sort (in descending order) the Interactables in the results list.

    Exceptions
    Type Condition
    InvalidOperationException

    Throws when this filter is currently processing and filtering Interactables.

    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.

    RemoveEvaluatorAt(Int32)

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

    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.

    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)

    Explicit Interface Implementations

    IEnumerable.GetEnumerator()

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

    Declaration
    IEnumerator IEnumerable.GetEnumerator()
    Returns
    Type Description
    IEnumerator

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

    Implements
    IEnumerable.GetEnumerator()

    See Also

    XRTargetEvaluator
    targetFilter
    startingTargetFilter
    GetValidTargets(List<IXRInteractable>)
    Back to top
    Terms of use
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023