private void Update()
        {
            if (!_mover.IsConstantMoving && _animator.GetBool(BossFSMData.Stat.Retreat))
            {
                _animator.SetBool(BossFSMData.Stat.Retreat, false);
            }

            _state._frozen    = _animator.GetBool(BossFSMData.Stat.Frozen);
            _input.DelayInput = _animator.GetBool(BossFSMData.Stat.DelayInput);
            _input.BlockInput = _animator.GetBool(BossFSMData.Stat.BlockInput);

            var rawMoveInput = _input.GetMovingDirection();
            var aimInput     = _state._frozen ? Vector2.zero : _input.GetAimingDirection().normalized;
            var moveInput    = _state._frozen ? Vector2.zero : _input.GetMovingDirection().normalized;

            UpdateMovingMode(aimInput, rawMoveInput);
            UpdateFacingDirection(aimInput);
            UpdateStates();

            if (moveInput.x != 0)
            {
                moveInput = NormalizeHorizonalDirection(moveInput);
            }
            _mover.Move(moveInput);

            if (_state._frozen)
            {
                _animator.SetFloat(BossFSMData.Stat.XSpeed, 0);
            }
            else
            {
                _animator.SetFloat(BossFSMData.Stat.XSpeed, moveInput.x);
            }
        }
Esempio n. 2
0
 public void Move()
 {
     mover.Move();
 }