/// ---------------------------------------------
/// 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);
}
}