Jump to content
UnitySpain
Alvaro95

Detener un rigid body de manera natural

Recommended Posts

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.

Edited by Alvaro95

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Quote

velocidad *= 0.98f;

y poco a poco va decelerando hasta llegar a cero.

Share this post


Link to post
Share on other sites

Pero como seria el script?

 

Ah lo del drag y angular drag no me vale, me jode la fisica.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

×
×
  • Create New...