using UnityEngine.Scripting.APIUpdating; namespace UnityEngine.XR.Interaction.Toolkit.Gaze { /// /// An interface that allows for computing an altered projectile velocity to allow for assisted aiming. /// This can be used to allow a user to throw a grab interactable to where they are looking. /// [MovedFrom("UnityEngine.XR.Interaction.Toolkit")] public interface IXRAimAssist { /// /// Takes a projectile's velocity and adjusts it to more closely hit a given target. /// /// The starting position of the projectile. /// The starting velocity of the projectile. /// How much gravity the projectile is experiencing. /// Returns a velocity based on the source, but adjusted to hit a given target. Vector3 GetAssistedVelocity(in Vector3 source, in Vector3 velocity, float gravity); /// /// Takes a projectile's velocity and adjusts it to more closely hit a given target. /// /// The starting position of the projectile. /// The starting velocity of the projectile. /// How much gravity the projectile is experiencing. /// If the angle between the initial velocity and adjusted velocity is greater than this value, no adjustment will occur. /// Returns a velocity based on the source, but adjusted to hit a given target. Vector3 GetAssistedVelocity(in Vector3 source, in Vector3 velocity, float gravity, float maxAngle); } }