Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Temas recientes

Giro NPC con quaterniones

Iniciado por jtorp20, Marzo 26, 2020, 01:42:57 AM

Tema anterior - Siguiente tema
Marzo 26, 2020, 01:42:57 AM Ultima modificación: Marzo 29, 2020, 05:00:21 AM por pioj
Buenas noches.
 
Estoy un poco perdido con esto. Mi proyecto es un juego en tercera persona, y con el siguiente código que es parte del script del enemigo, hago que a una distancia de 10, este  enemigo gire hacia mi personaje.
 
El problema es que quiero meterle animación de giro a la derecha y a la izquierda y no se como establecer la condición para activar cada animación. ¿Con qué valores  y de que variable sé, que debe girar a la derecha o a la izquierda? 
 



   
      if (Vector3.Distance(player.position, this.transform.position) < 10) 
              {
                  Vector3 direccion = player.position - this.transform.position; 
                  this.transform.rotation = Quaternion.Slerp(this.transform.rotation, Quaternion.LookRotation(direccion), 0.5f);
              }
   

[/quote]
 
Saludos!!!

Habrá que calcular el ángulo respecto a player y this y aplicar esa diferencia para la rotation. La menor diferencia entre las dos posibles:
 


   
eature=oembed">

 
 

Slerp siempre gira por el camino más corto.

Ok. Muchas gracias por las respuestas y por el vídeo.
 
Al final parece que para calcular el angulo por el camino mas corto tengo que usar ángulos de Euler y luego pasar a hacer la rotación con quaterniones.
 
 

Etiquetas: