Duplicate/Common Question
Proper way to set a RigidBody's maximum velocity
I am trying to gradually accelerate a GameObject with a RigidBody attached until it reaches a maximum velocity, at which point it becomes unable to gain any more velocity.
I know I can simply reset the object velocity to an arbitrary maximum velocity every frame if it overshoots, but I've repeteadly heard that manually setting an object's velocity is a very bad practice in the context of Unity's physics system.
I am also aware that in a physical sense, objects don't have a
"maximum velocity" and that such a
thing will always be artificial.
I can think of several ways to achieve this, but given these limitations, I would like to know if there's a standard, optimum way to do this.
Answer by meat5000 · Jan 22, 2018 at 09:52 AM
The 'proper' way is to limit magnitude rather than velocity elements. This is, of course, dependent on the effect you are trying to achieve.
https://answers.unity.com/questions/9985/limiting-rigidbody-velocity.html
There are many existing answers
Follow this Question
Related Questions
Rigidbody rotate velocity 0 Answers
Mass effects terminal velocity 1 Answer
getComponent().Velocity always returns 0? 2 Answers
i wanna set max velocity, max angular velocity to joint 0 Answers
Overriding OnCollisionEnter function 2 Answers