Does anyone know how to make a 2D Conveyor Belt using transform.position and transform.MovePosition()

I’m currently making a 2D platformer similar to Celeste and I want to make a working conveyor belt system. I have tried using rb.AddForce(), but that can get glitchy and sometimes doesn’t even push you off the conveyor belt. I’ve thought about it and I know that using transform.position and transform.MovePosition() would be the best way to go. It would work for the player and the crates I’ve also made. So please, does anyone have any answers or a script that can utilise transform.position and transform.MovePosition() to make working conveyor belt that can go backward OR forward?

rigidbody2d.MovePosition might be more what you’re looking for.

For a more zoomed out view of platforming physics, Celeste’s programmer lays out exactly how they did it on this blog post - Celeste & TowerFall Physics

The SurfaceEffector2D would do this automatically: https://youtu.be/04OURV97Xu8?si=4gZKUTGeP5-7L26U

Absolutely never ever modify the Transform when using 2D physics. That’s the role of the Rigidbody2D so you’d be stomping over what it’s trying to do. Always use its API.