Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Nolaif en Marzo 27, 2016, 10:05:39 AM

Título: Obtener una de las coordenadas devueltas por Quaternion.LookRotation(transform.forward)
Publicado por: Nolaif en Marzo 27, 2016, 10:05:39 AM
Hola a todos, Después de haber pasado el día entero probando barbaridades para obtener una de las coordenadas que devuelve un Quaternion, he decidido venir a molestar -.-Necesito el valor señalado en esta captura:
Título: Obtener una de las coordenadas devueltas por Quaternion.LookRotation(transform.forward)
Publicado por: Braltor en Marzo 27, 2016, 02:45:14 PM
y que valor te da ahora? suena a que tienes que hacer conversión de coordenadas... si es para realidad virtual (como cardboard) hay una conversion conocida, sino tienes que ser MUY bueno en matematicas para hacer la tuyael XYZW del quaternion no es lo mismo que los ejes XYZ del vector que conoces... puede usar quaternion.eulerangles que te da los angulos en cada eje
Título: Obtener una de las coordenadas devueltas por Quaternion.LookRotation(transform.forward)
Publicado por: juanma_teso en Marzo 27, 2016, 02:48:39 PM
Has intentado con 'transform.rotation.z' pero tomando sólo el primer decimal?
Título: Obtener una de las coordenadas devueltas por Quaternion.LookRotation(transform.forward)
Publicado por: Arthure en Marzo 27, 2016, 03:36:53 PM
Se puede convertir de Quaternion a Vector3 y viceversa del modo mas sencillo ... transform.eulerAngles devuelve la rotacion como Vector3 y despues solo tienes que consultar el valor del eje que te interese. Por ejemplo para saber la rotacion en el eje Z es tan facil como float rotacion_angulo_z = transform.eulerAngles.z;
Título: Obtener una de las coordenadas devueltas por Quaternion.LookRotation(transform.forward)
Publicado por: Nolaif en Marzo 28, 2016, 03:23:04 AM
[quote author=Braltor" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="35487" data-ipsquote-contentcommentid="128714">y que valor te da ahora? suena a que tienes que hacer conversión de coordenadas... si es para realidad virtual (como cardboard) hay una conversion conocida, sino tienes que ser MUY bueno en matematicas para hacer la tuyael XYZW del quaternion no es lo mismo que los ejes XYZ del vector que conoces... puede usar quaternion.eulerangles que te da los angulos en cada eje[/quote]Gracias por responder. Los valores que me da ahora son los reflejados en la captura.No puedo usar euler porque el comando que uso, averigua los grados de a donde apunta el objeto cuando se desplaza, no los del objeto con respecto al mundo.

Posted  (edited) · Report post

Has intentado con 'transform.rotation.z' pero tomando sólo el primer decimal?Edited  by juanma_teso[/quote]Gracias por responder. Se a qué te refieres, la rotación del objeto respecto al mundo. El comando que uso funciona de distinta manera, devuelve el valor de a donde apuntará el objeto desplazado.

Posted  · Report post

Se puede convertir de Quaternion a Vector3 y viceversa del modo mas sencillo ... transform.eulerAngles devuelve la rotacion como Vector3 y despues solo tienes que consultar el valor del eje que te interese. Por ejemplo para saber la rotacion en el eje Z es tan facil como float rotacion_angulo_z = transform.eulerAngles.z;[/quote]Gracias por responder. No puedo usar Euler porque obtengo valores del objeto con respecto al mundo. Lo que necesito es averiguar el valor con respecto a la dirección que va a tomar, ese es el kit (//Smileys/invision/default_smile.png)Quaternion angulo = Quaternion.LookRotation(transform.forward);

string [] numeros = Quaternion.LookRotation(transform.forward).ToString().Split(',');Esto es en esencia lo que quisiera obtener mediante el uso de las clases adecuadas en Unity. Ojalá alguien supiera. Un saludo!