Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Giroscopio unity

Iniciado por zaius, Mayo 18, 2016, 08:11:38 PM

Tema anterior - Siguiente tema
Quiero que un personaje que avanza hacia arriba se mueva hacia la derecha o izquierda segun gire el telefono,pero no soy exactamente con que variables , estoy mirando  Input.gyro pero no doy con que variable me nindica el giro porque ninguna de las que probe se queda a 0 al dejar el telefono quiero¿alguien ha trasteado con el giroscopio ?


Mayo 19, 2016, 01:31:09 PM #2 Ultima modificación: Mayo 19, 2016, 01:31:34 PM por zaius
De momento lo tengo echo asi y funciona aunque hay que pulirlo un poco porque la rotacion ,no me acaba de convencer la sensacion que da  al rotar
 

void Update () {
        //Debug.Log(Input.GetAxis("Horizontal"));
        //transform.Translate(Input.GetAxis("Horizontal")*Time.deltaTime * speed, 0, 0);
        if(transform.position.x >= 3.5)
        {
            if(Input.gyro.attitude.y < 0)
                transform.Translate(Input.gyro.attitude.y * Time.deltaTime * speed, 0, 0);
        }else if (transform.position.x <= - 3.5)
        {
            if (Input.gyro.attitude.y >= 0)
                transform.Translate(Input.gyro.attitude.y * Time.deltaTime * speed, 0, 0);
        }
        else
        {
            transform.Translate(Input.gyro.attitude.y * Time.deltaTime * speed, 0, 0);
        }
    }

 
 

attitude es un cuaternion que tiene componentes x y z w... pero esa no es la Y q tu crees xD
 
si te funciona bien, pero por mas q martilles esa Y en un translate talvez no puedas deshacerte de los errores...
 
lee un poco sobre quaternions, eulerAgles y la diferencia entre un vector y una rotación

Aparte, te recomiendo que te bajes una app para conocer la rotación real y compararla, y una que te calibre el gyro interno por si acaso.

Creo que asi si que funciona
 

transform.Translate(Input.gyro.rotationRate.y * Time.deltaTime * speed, 0, 0);

 
 

Etiquetas: