/// --------------------------------------------- /// Ultimate Character Controller /// Copyright (c) Opsive. All Rights Reserved. /// https://www.opsive.com /// --------------------------------------------- namespace Opsive.UltimateCharacterController.Character { using UnityEngine; /// /// Interface which specifies an object which can be used for determine the character's look direction. /// public interface ILookSource { /// /// Returns the GameObject of the look source. /// GameObject GameObject { get; } /// /// Returns the Transform of the look source. /// Transform Transform { get; } /// /// Returns the distance that the character should look ahead. /// float LookDirectionDistance { get; } /// /// Returns the pitch angle of the look source. /// float Pitch { get; } /// /// Returns the position of the look source. /// Vector3 LookPosition(); /// /// Returns the direction that the character is looking. /// /// Is the character look direction being retrieved? /// The direction that the character is looking. Vector3 LookDirection(bool characterLookDirection); /// /// Returns the direction that the character is looking. /// /// The position that the character is looking from. /// Is the character look direction being retrieved? /// The LayerMask value of the objects that the look direction can hit. /// Should recoil be included in the look direction? /// The direction that the character is looking. Vector3 LookDirection(Vector3 lookPosition, bool characterLookDirection, int layerMask, bool useRecoil); } }