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.
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:
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.