public override AgentInput Execute(StateInstance instance, BehaviourContext context) { var pursueInstance = instance as PursueStateInstance; pursueInstance.CurrentRepathTimer -= Time.deltaTime; if (pursueInstance.CurrentRepathTimer <= 0) { pursueInstance.CurrentRepathTimer = RepathTimer; context.SetTarget(pursueInstance.Target.transform.position); } var direction = (context.AiAgent.ProxyObject.nextPosition - context.Agent.transform.position).normalized; var result = new AgentInput { MovementDirection = direction, RotationDirection = direction, Done = false }; return(result); }