docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class InteractionCasterBase

    Provides an abstract base for interaction casters used by NearFarInteractor. This class serves as the foundation for casting interactions, managing initialization, and providing the fundamental mechanics for casting. It implements the IInteractionCaster interface.

    Inheritance
    object
    Object
    Component
    Behaviour
    MonoBehaviour
    InteractionCasterBase
    CurveInteractionCaster
    SphereInteractionCaster
    Implements
    IInteractionCaster
    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.Interactors.Casters
    Assembly: Unity.XR.Interaction.Toolkit.dll
    Syntax
    public abstract class InteractionCasterBase : MonoBehaviour, IInteractionCaster
    Remarks

    The class maintains a state to track whether it has been initialized and allows for setting and getting the origin of casting. It also requires implementation of an abstract method to try and get collider targets based on an XRInteractionManager.

    Properties

    aimTarget

    Gets or sets the aim target ray provider for calculating stable rotation.

    Declaration
    public IXRRayProvider aimTarget { get; set; }
    Property Value
    Type Description
    IXRRayProvider

    angleStabilization

    Factor for stabilizing angle. This value represents the maximum angle (in degrees) over which angle stabilization will be applied. Larger values increase the range of stabilization, making the effect more pronounced over a greater angle.

    Declaration
    public float angleStabilization { get; set; }
    Property Value
    Type Description
    float

    castOrigin

    Source of origin and direction used when updating sample points.

    Declaration
    public Transform castOrigin { get; set; }
    Property Value
    Type Description
    Transform

    effectiveCastOrigin

    Gets the effective cast origin, which may be different than the castOrigin. The caster may use a different transform, such as one that is stabilized, to conduct the cast.

    Declaration
    public Transform effectiveCastOrigin { get; }
    Property Value
    Type Description
    Transform

    enableStabilization

    Determines whether to stabilize the cast origin.

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

    isInitialized

    Indicates whether the caster has been initialized.

    Declaration
    public bool isInitialized { get; protected set; }
    Property Value
    Type Description
    bool

    positionStabilization

    Factor for stabilizing position. This value represents the maximum distance (in meters) over which position stabilization will be applied. Larger values increase the range of stabilization, making the effect more pronounced over a greater distance.

    Declaration
    public float positionStabilization { get; set; }
    Property Value
    Type Description
    float

    Methods

    Awake()

    See MonoBehaviour.

    Declaration
    protected virtual void Awake()

    InitializeCaster()

    Tries to initialize the caster.

    Declaration
    protected abstract bool InitializeCaster()
    Returns
    Type Description
    bool

    Returns true if successful or already initialized.

    InitializeStabilization()

    Creates a stabilization anchor if one does not already exist.

    Declaration
    protected virtual bool InitializeStabilization()
    Returns
    Type Description
    bool

    True if anchor exists or stabilization is disabled

    OnDestroy()

    See MonoBehaviour.

    Declaration
    protected virtual void OnDestroy()

    OnValidate()

    See MonoBehaviour.

    Declaration
    protected virtual void OnValidate()

    TryGetColliderTargets(XRInteractionManager, List<Collider>)

    Gets an unsorted list of collider targets

    Declaration
    public virtual bool TryGetColliderTargets(XRInteractionManager interactionManager, List<Collider> targets)
    Parameters
    Type Name Description
    XRInteractionManager interactionManager

    XR Interaction manager reference

    List<Collider> targets

    List of target colliders to populate.

    Returns
    Type Description
    bool

    Returns true if collider targets were found.

    UpdateInternalData()

    Updates internal state for the caster.

    Declaration
    protected virtual void UpdateInternalData()

    Implements

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