So I was trying to understand the differences between different ways to move an object in Unity and got opposite answers in different places. Here is what I was able to figure out though. I would ask you to check and correct me if I am wrong at any of them:
- transform.Translate has nothing to do with the physics. It simply teleports the object from point A to point B.
- MovePosition for kinematic bodies slides (instead of teleporting) the object from point A to B + interpolates the object position in the frames to be rendered in-between FixedUpdate calls.
- MovePosition for non-kinematic bodies ( aka dynamic ) teleports them from point A to point B.