Ask a question: 

How does physics change the velocity of a rigidbody?


When you add a force to a Rigidbody, the physics engine increases its velocity. In every physics update, the physics engine modifies this velocity based on collisions, friction, etc and then it computes the new position based on the new velocity. If you want the rigidbody to stop moving immediately, you have to set the velocity to zero:

Why does ForceMode.VelocityChange work but not Rigidbody ?

The difference is that while velocity = value sets the velocity to a new value, AddForce(value) adds to the existing velocity. The rigidbody will retain any existing momentum it received from velocity changes and forces it received previously.

is it bad to change velocity of rigidbody directly? is it bad to change velocity of rigidbody directly? Question. official scripting API says "not recommended". I have some situations when actor need to "dash" in air, and I want it to not affected by any other forces at that time. The only reason it's not recommended is because it can make physics interactions wonky.

Was this answer helpful:  


Please let the audience know your advice: