Summary
Use Transform movement when the object is being positioned directly and does not need physics to control its motion. Use Rigidbody2D movement when the object participates in Unity’s 2D physics simulation, needs reliable collision response, or uses velocity and forces. The course introduces both because transform movement is easier to read first, while Rigidbody2D movement is the better model once collisions, knockback and physics timing matter. (course lab series, see source-csharp-unity-labs)
Comparison table
| Dimension | Transform movement | Rigidbody2D movement |
|---|---|---|
| Typical API | transform.Translate, transform.position | rb.linearVelocity, rb.MovePosition, rb.AddForce |
| Main idea | Put the object at a position | Ask the physics body to move |
| Best for | Simple scripted movement, UI-like objects, beginner first steps | Physics objects, player controllers, knockback, collisions |
| Timing | Usually Update with Time.deltaTime | Usually FixedUpdate, with input read in Update |
| Collision behaviour | Can bypass physics if used carelessly | Works with the physics simulation |
| Beginner readability | Very high | Medium, because physics timing must be understood |
| Main risk | Missed collisions or jitter on physics objects | Overcomplication for simple movement |
When to choose Transform
Choose Transform movement when:
- the object does not use a Dynamic Rigidbody2D
- the movement is simple and directly controlled by code
- the teaching goal is to understand axes, positions and
Time.deltaTime - the object is a camera target, menu object, marker, simple pickup animation or non-physics visual
Transform movement is often the right first teaching step because students can see the direct relationship between input values and position changes.
When to choose Rigidbody2D
Choose Rigidbody2D movement when:
- the object should collide reliably with walls, hazards, platforms or pickups
- movement uses velocity, forces, knockback or gravity
- you need physics callbacks such as
OnCollisionEnter2D - the object is Dynamic or Kinematic and should remain inside Unity’s physics model
For a physics player, the common pattern is: read input in Update, store it in a field, then apply velocity in FixedUpdate.
Related
unity-transform · unity-rigidbody2d · monobehaviour-lifecycle · unity-input · unity-collider2d-and-triggers · overview-beginner-2d-unity-route