For my personal 3rd person Character controller, I’m using Rigidbody.MovePosition (direction the character is facing).
The camera itself (stand-alone game object in the scene) will perfectly smooth follow the character. The character, however, does not move smooth.
Moving the line of code containing Rigidbody.MovePosition from FixedUpdate to Update did not solve it.
Now, I’ve been looking on Google for quite some time on how to do this, and every time people say “use Rigidbody.Velocity”. But in the Unity documentation, it states:
“In most cases you should not modify the velocity directly, as this can result in unrealistic behavior. Don’t set the velocity of an object every physics step, this will lead to unrealistic physics simulation. A typical example where you would change the velocity is when jumping in a first person shooter, because you want an immediate change in velocity.”
So, because I do expect to use an explosion force, I don’t want unrealistic physics behavior.
I’ve also looked into Transform.Translate, but this does not really have a great Physics simulation…
Does anyone have any idea how to make my character move smoothly, while still having good collision detection, and not modifying the velocity parameter itself?