Noticias

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

Temas recientes

Detener un rigid body de manera natural

Iniciado por Alvaro95, Enero 08, 2019, 09:56:41 PM

Tema anterior - Siguiente tema
Enero 08, 2019, 09:56:41 PM Ultima modificación: Enero 08, 2019, 10:00:20 PM por Alvaro95
Buenas a todos!
 
 
 
¿Existe alguna manera de que un rigid body se detenga de manera suave?
 
En mi caso tengo un rigid body que se mueve rotando, quiero que al pulsar una tecla se detenga completamente pero lentamente como si fuera un freno vamos.

Puedes modificar el drag del rigidbody, a mayor drag más oposición tiene a moverse, para la rotación creo que está el angulardrag, es decir si fijas un angulardrag "grande" se detendrá de forma lineal rápidamente, uno "pequeño" tardará más.

Un truco po***rmente conocido es usar la inercia con los valores de gravedad, se le llama también "dampening":
 



   
      velocidad *= 0.98f;
   

[/quote]
 
y poco a poco va decelerando hasta llegar a cero.

Pero como seria el script?
 
 
 
Ah lo del drag y angular drag no me vale, me jode la fisica.

Pues hazlo con la magnitud del vector velocidad del rigidbody. 

 
 

if(condicion){
rigidbody.velocity = Vector3.ClampMagnitude(rigidbody.velocity, Mathf.Lerp(rigidbody.velocity.magnitude, 0f, time.deltaTime));
}

 
No sé si está bien lo acabo de hacer sobre la marcha pero sería algo de ese estilo. Busca info.

Etiquetas: