private void Update()
    {
        if (!m_CharacterAnimator.IsAttacking)
        {
            ProcessMovement();
        }

        ProcessCombatAimSystem();

        if (PlayerInput.BasicAttackUp)
        {
            if (m_AttackController.canCombo)
            {
                m_AttackController.currentCombo = 1;
                m_CharacterAnimator.ContinueAttack();
            }
            else
            {
                m_AttackController.currentCombo = 0;
            }

            m_CharacterAnimator.BasicAttack(true);
            StartCoroutine(Nudge());
        }

        if (IsGrounded())
        {
            if (PlayerInput.JumpUp)
            {
                Jump();
            }
        }

        if (PlayerInput.TargetButtonUp)
        {
            lockOn = !lockOn;
        }


        var target = TargettingUtils.GetNearestTarget <BasicAI>(transform);

        if (target != null && lockOn)
        {
            var dir = target.transform.position - transform.position;
            dir.Normalize();
            dir.y             = 0;
            transform.forward = Vector3.Lerp(transform.forward, dir, 5 * Time.deltaTime);
        }
    }