Noticias

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

¿Como Obtener velocidad m/s mediante el Vector3 velocity del RigidBody?

Iniciado por ftejada, Noviembre 06, 2015, 04:07:32 AM

Tema anterior - Siguiente tema
Hola a todos, necesito obtener la velocidad a la que va un objeto. He visto que mediante su rigidbody puedo acceder a la variable "velocity"
 que es un vector3. Pero yo quiero conseguir la velocidad en metros por segundo o Km/h y no un vector3, ya que no se como operar con él¿Alguien me podria decir como puedo conseguir la velocidad en metros por segundos en cada frame?  Saludos y gracias de antemano   

En principio 1 unidad en Unity equivale a 1 mt. Realmente son unidades Unity, pero dado que el motor physics lo trata así (la gravedad está definida en m/s2), normalmente todo el mundo lo trata en mts. Por otro lado, tienes en el Update una actualización por cada frame y Time.deltaTime el tiempo entre frames. Así que, si obtienes el Vector3 del objeto en un frame, y lo obtienes en el siguiente, la diferencia entre las dos posiciones (con Vector3.Distance) te dará el espacio recorrido, y como ya tienes el tiempo que ha tardado, pues... ya está.

Con  rigidbody.velocity.magnitude obtienes la velocidad en m/s y multiplicando ese valor por 3.6 la obtienes en  Km/h

FNK Games  Games Developer  -  Juegos realizados en Unity para iOS y Android



Muchas Gracias a ambos por responder...Voy a probar las dos opciones


La primera es tan buena como la segunda. Pero si tienes un rigidbody la primera es directa. Pero si no es rigidbody, la segunda es muy válida.

Etiquetas: