What is the difference between these two? Why should I choose one and not the other? As I tested the differences between these two, I discovered that with both I can manipulated the position of a rigidbody, although with MovePosition, some weird physics is happening on collision. But I wanted to try out MovePosition because it just sounds less physics simulation and thus better performance.
RE: “translate” from the answer above: MovePosition will put your object at the target location, no matter what. It may push aside other objects in a realistic way, or may blast them out of the way, or may just pass right through them. But it will gladly move you through a solid wall or a mountain.
If you’re using MovePosition on a rigidbody to add from where you currently are, it looks like AddForce. With AddForce, the physics step does all the work: applies your velocity, sees the collision and handles the bounce. With MovePosition, the physics step sees you’re mysteriously overlapping a solid object. If it isn’t too much, it will bounce you apart.