Пример #1
0
        protected virtual void ActionHandler()
        {
            if (InputSignal.Roll || _rigidbody.velocity.magnitude > 8f)
            {
                _animator.SetTrigger(ProjectConstant.AnimatorParameter.ROLL);
            }
            else
            {
                _animator.ResetTrigger(ProjectConstant.AnimatorParameter.ROLL);
            }

            if (InputSignal.Jump)
            {
                _animator.SetTrigger(ProjectConstant.AnimatorParameter.JUMP);
                _machine.TranslateTo(_airState);
            }

            if (InputSignal.Attack && _machine.GetCurrentState() != _airState)
            {
                GameObject enemy;
                if ((enemy = CheckHasEnemyOnFace()) != null &&
                    enemy.GetComponent <IEnemyActorManager>().BackStabEnable())
                {
                    _animator.SetTrigger(ProjectConstant.AnimatorParameter.BACK_STAB);
                }
                else
                {
                    _animator.SetTrigger(ProjectConstant.AnimatorParameter.ATTACK);
                }
            }

            if (InputSignal.Defense && _machine.GetCurrentState() == _attackState)
            {
                _animator.SetTrigger(ProjectConstant.AnimatorParameter.DEFENSE);
            }
        }