Exemple #1
0
        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());
            }
        }
Exemple #2
0
 protected void UpdateMover(float horizontal, float vertical)
 {
     if (_frozenCount > 0)
     {
         Mover.UpdateMove(0.0f, 0.0f);
     }
     else
     {
         Mover.UpdateMove(horizontal, vertical);
     }
 }