using UnityEngine; namespace BehaviorDesigner.Runtime.Tasks.Movement { public abstract class Movement : Action { /// /// Set a new pathfinding destination. /// /// The destination to set. /// True if the destination is valid. protected abstract bool SetDestination(Vector3 destination); /// /// Specifies if the rotation should be updated. /// /// Should the rotation be updated? protected abstract void UpdateRotation(bool update); /// /// Does the agent have a pathfinding path? /// /// True if the agent has a pathfinding path. protected abstract bool HasPath(); /// /// Returns the velocity of the agent. /// /// The velocity of the agent. protected abstract Vector3 Velocity(); /// /// Has the agent arrived at the destination? /// /// True if the agent has arrived at the destination. protected abstract bool HasArrived(); /// /// Stop pathfinding. /// protected abstract void Stop(); } }