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