void FixedUpdate()
    {
        if (!IsLocked)
        {
            // Movimentação do personagem
            Move();

            // Último botão pressionado (para saber qual deverá ser a próxima ação)
            PlayerAction currentAction = InputManager.Instance.Triggers.lastPressed;

            // Só realiza ação se ela for permitida, já que dependendo do estado do jogador
            // algumas ações não podem ser realizada
            if (currentAction != PlayerAction.None && IsActionAllowed(currentAction))
            {
                switch (currentAction)
                {
                case PlayerAction.Attack:
                    StartCoroutine(Attack());
                    break;


                case PlayerAction.Grab:
                    if (gridArea)
                    {
                        StartGrab();
                    }
                    break;


                case PlayerAction.Jump:
                    Jump();
                    break;


                case PlayerAction.SkillAreaAttack:
                    if (energyController.Consume(50))
                    {
                        StartCoroutine(AreaAttack());
                    }
                    break;


                case PlayerAction.SkillDodge:
                    if (energyController.Consume(10))
                    {
                        StartCoroutine("Dodge");
                    }
                    break;


                case PlayerAction.SkillRangedAttack:
                    if (energyController.Consume(25))
                    {
                        StartCoroutine(RangeAttack());
                    }
                    break;


                case PlayerAction.SkillShield:
                    StartCoroutine("Shield");
                    break;
                }

                InputManager.Instance.DeactivateTriggers();
            }
        }
    }