using UnityEngine.Scripting.APIUpdating; using UnityEngine.XR.Interaction.Toolkit.Gaze; namespace UnityEngine.XR.Interaction.Toolkit.Interactors { /// /// An interface that represents a -driven XR Ray. /// /// /// [MovedFrom("UnityEngine.XR.Interaction.Toolkit")] public interface IXRRayProvider { /// /// Ensures a exists for the ray origin and returns it. /// /// The that is the starting position and direction of any ray casts. Transform GetOrCreateRayOrigin(); /// /// Ensures a exists for the ray attach point and returns it. /// /// The that is used as the attach point for Interactables. Transform GetOrCreateAttachTransform(); /// /// Assigns a to be the source of this ray. /// /// The that is the starting position and direction of any ray casts. void SetRayOrigin(Transform newOrigin); /// /// Assigns a to be the attach point of this ray. /// /// The that is used as the attach point for Interactables. void SetAttachTransform(Transform newAttach); /// /// The last endpoint of this ray, either its maximum distance or a collision point. /// Vector3 rayEndPoint { get; } /// /// The of the object this ray has collided with, if any. /// Transform rayEndTransform { get; } } }