private IEnumerator Run() { while (true) { var horizontal = 0.0f; var vertical = 0.0f; if (Running && (_controller == null || !_controller.IsFrozen)) { _delay -= Time.fixedDeltaTime; if (_delay <= 0) { if (!_mover.Moving) { FindPathToNextNode(); } var direction = _targetPosition - _mover.CurrentGridPosition; horizontal = Mathf.Clamp(direction.x, -1, 1); vertical = Mathf.Clamp(direction.y, -1, 1); } } _mover.UpdateMove(horizontal, vertical); yield return(new WaitForFixedUpdate()); } }
protected void UpdateMover(float horizontal, float vertical) { if (_frozenCount > 0) { Mover.UpdateMove(0.0f, 0.0f); } else { Mover.UpdateMove(horizontal, vertical); } }