Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Ness en Noviembre 15, 2016, 06:10:44 AM

Título: Problema para ajustar la rotación de un objeto.
Publicado por: Ness en Noviembre 15, 2016, 06:10:44 AM
tengo un problema con la rotacion , quiero gire un objeto pero el angulo   no es correcto trato de averiguar como corregir esa  rotación pero si lo hago atrevas de  transform.eulerAngles = new Vector3(0, 0, transform.localEulerAngles.z + num2); empieza tambalearse.
 
 
 

       Quaternion targetRotation = Quaternion.LookRotation(Vector3.forward , Targer.position - transform.position);
   
        transform.rotation =  Quaternion.Slerp(transform.rotation, targetRotation, VelRotacionAtaq3 * Time.deltaTime);
// si le corrijo la rotacion con esta linea empieza a tambalear.
  transform.eulerAngles = new Vector3(0, 0, transform.localEulerAngles.z + num2);
   

 
 
 
¿Sabran que me esta pasando ?
Título: Problema para ajustar la rotación de un objeto.
Publicado por: iRobb en Noviembre 15, 2016, 10:48:49 AM
Haz siempre:
 
transform.rotation = Quaternion.Euler(....)
 
Nunca sumes o restes ángulos en vectores o tendrás problemas. La clase Quaternion tiene un montón de funciones de rotación aparte de la asignación directa.
Título: Problema para ajustar la rotación de un objeto.
Publicado por: lightbug en Noviembre 15, 2016, 11:18:39 AM
Sera porque en la ultima linea estas sumando num2 sin tener en cuenta el deltaTime de cada cuadro ?¿?
 

transform.eulerAngles = Vector3.zero;
transform.eulerAngles += new Vector3(0,0,Time.deltaTime * num2);

 
eso si esto va mucho mas lento porque num2 esta reducido como en cientos o miles ya que deltaTime esta en segundos
 
salu2
Título: Problema para ajustar la rotación de un objeto.
Publicado por: Ness en Noviembre 15, 2016, 02:16:49 PM
Los dos métodos  funcionan gracias.