using UnityEngine;
namespace BehaviorDesigner.Runtime.Formations.Tasks
{
///
/// The FormationAgent class contains component references and variables for each FormationAgent.
///
public abstract class FormationAgent
{
protected Transform transform;
public abstract float Speed { set; }
public abstract float Radius { get; }
public abstract float RemainingDistance { get; }
public abstract float StoppingDistance { get; }
public abstract bool HasPath { get; }
public abstract bool PathPending { get; }
public abstract bool AutoBreaking { set; }
///
/// Caches the component referneces.
///
public FormationAgent(Transform agent)
{
transform = agent;
}
///
/// Resumes pathfinding.
///
public abstract void Resume();
///
/// Sets the destination.
///
public abstract void SetDestination(Vector3 destination);
///
/// Rotates towards the target rotation.
///
public abstract bool RotateTowards(Quaternion targetRotation);
///
/// Stops the agent from moving.
///
public abstract void Stop();
///
/// The task has ended. Perform any cleanup.
///
public abstract void End();
}
}