es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La rotación alrededor de 2 ejes incluye rotaciones no deseadas.

Quiero girar un objeto alrededor del eje x y rotar alrededor del eje y en una dirección.

Quaternion qr = Quaternion.Euler(transform.eulerAngles.x, 0, 0);
transform.rotation = Quaternion.Lerp(transform.rotation, qr, Time.deltaTime * 5);

transform.rotation = Quaternion.Euler(xRotation(xRotationSpeed), 
                     transform.eulerAngles.y, 0);

Las rotaciones en x e y combinadas hacen rotaciones extrañas y a veces incluso rotan en z aunque lo tengo configurado en 0.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para hacer girar un objeto alrededor del eje x y rotar el eje y hacia una dirección en Unity3D utilizando cuaterniones, puedes utilizar el siguiente código:

    Quaternion xRotation = Quaternion.Euler(velocidadRotacion, 0, 0);
    Quaternion yRotation = Quaternion.LookRotation(direccionObjetivo);
    transform.rotation = xRotation * yRotation;
    

    Este código primero crea un cuaternion para la rotación en x utilizando el método Quaternion.Euler, que toma como argumentos los ángulos de Euler. La variable velocidadRotacion determina la cantidad de rotación alrededor del eje x.

    Luego, el código crea un cuaternion para la rotación en y utilizando el método Quaternion.LookRotation, que toma como argumento la dirección hacia la cual el objeto debe apuntar. La variable direccionObjetivo determina la dirección de la rotación alrededor del eje y.

    Finalmente, las dos rotaciones se combinan utilizando el operador de multiplicación, y el resultado se asigna a la propiedad transform.rotation del objeto.

    Asegúrate de no establecer ningún valor en el eje z, ya que esto puede causar rotaciones extrañas.

Comments are closed.