ControlesValores ObterControlesValores(ref ControlesEixos ctrlEixos)
        {
            ControlesValores resultado = new ControlesValores();

            resultado.eixoHorizontal = Input.GetAxisRaw(ctrlEixos.eixoHorizontal);
            resultado.eixoVertical   = Input.GetAxisRaw(ctrlEixos.eixoVertical);

            // truque que aprendi :D
            // considere a expressão x && y, se x for false, y não será avaliado
            // ou seja, é o mesmo que if (ctrlEixos.eixoAcao1 != "") resultado.eixoAcao1 = Input.GetButtonDown(ctrlEixos.eixoAcao1);
            // o nome disso é Avaliação curto-circuito: https://pt.wikipedia.org/wiki/Express%C3%A3o_(computa%C3%A7%C3%A3o)#Avalia%C3%A7%C3%A3o_curto-circuito
            resultado.eixoAcao1 = ctrlEixos.eixoAcao1 != "" && Input.GetButtonDown(ctrlEixos.eixoAcao1);
            resultado.eixoAcao2 = ctrlEixos.eixoAcao2 != "" && Input.GetButtonDown(ctrlEixos.eixoAcao2);

            return(resultado);
        }
        ControlesValores ObterControlesValores()
        {
            ControlesValores resultado = new ControlesValores();

            if (trAlvo && !estaNoPonto)
            {
                resultado.eixoHorizontal = dir.x;
                resultado.eixoVertical   = dir.z;
            }
            else
            {
                resultado.eixoHorizontal = resultado.eixoVertical = 0;
            }

            resultado.eixoAcao1 = resultado.eixoAcao2 = false;

            return(resultado);
        }