- Home /
Differences between object movement functions
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.
Answer by Grimm9186 · Feb 27, 2019 at 02:31 PM
AFAIK, all of them 'teleport' the object, the only real difference between MovePosition and transform.Translate is that MovePosition takes Physics into account before the movement. So it shouldn't clip into things as much as transform.Translate (even if its kinematic, if the body that it is colliding with is a dynamic rigidbody it will work out the physics for that body before the kinematic body is moved, this is why it appears to 'slide')
Your answer

Follow this Question
Related Questions
Rigidbody climbing stairs 2 Answers
How to move child with collider when parent has the rigidbody 0 Answers
Unity Physics On Input Issue? 0 Answers
Restricting movement on an axis from physics 1 Answer
Strange Rigidbody Behavior 0 Answers