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 ?
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.
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
Los dos métodos funcionan gracias.