public void FocarCamera(/*GerenciadorDeCamera gerenteC*/)
    {
        Quaternion alvoQ = Quaternion.LookRotation(caracteristicas.alvo.forward +
                                                   caracteristicas.altura / 10 * Vector3.down);

        x = Mathf.LerpAngle(x, alvoQ.eulerAngles.y, caracteristicas.velocidadeMaxFoco * Time.deltaTime);
        y = Mathf.LerpAngle(y, alvoQ.eulerAngles.x, caracteristicas.velocidadeMaxFoco * Time.deltaTime);


        float paraContinha = Mathf.Min(Mathf.Abs(x - alvoQ.eulerAngles.y), Mathf.Abs(360 - Mathf.Abs(x - alvoQ.eulerAngles.y) % 360));


        if (paraContinha % 360 < 5 && Mathf.Abs(y - alvoQ.eulerAngles.x) % 360 < 15)
        {
            estadoAtual = EstadoDeCamera.controlando;
        }
    }
    public void AplicaCamera(float altura)
    {
        if (caracteristicas.alvo && caracteristicas.minhaCamera)
        {
            if (Input.GetButtonDown("focarCamera"))
            {
                EstadoAtual = EstadoDeCamera.focando;
            }

            if (estadoAtual == EstadoDeCamera.controlando)
            {
                CameraControlavel();
            }
            else if (estadoAtual == EstadoDeCamera.focando)
            {
                FocarCamera();
            }

            Quaternion rotation = Quaternion.Euler(y, x, 0);

            Vector3 position = rotation * (new Vector3(0.0f, 0.0f, -caracteristicas.distancia))
                               + caracteristicas.alvo.position + (altura + caracteristicas.AlturaDoPersonagem) * Vector3.up;

            caracteristicas.minhaCamera.rotation = rotation;

            caracteristicas.minhaCamera.position = position + Vector3.up;

            SetarTransformsDeRetorno();

            CameraDeLuta.contraParedes(caracteristicas.minhaCamera, caracteristicas.alvo, altura + caracteristicas.AlturaDoPersonagem);
        }
        else
        {
            caracteristicas.alvo = GameController.g.Manager.transform;
        }
    }