How do you move a rigidbody with constant velocity

I am working on a conveyor belt project and would ideally like to move objects down the conveyor at a constant speed.

I am using rigidbody.applyForce(1,0,0) on every update to move the object down the conveyor which is working apart from if the value is too low the friction brings it to a stop. If the value is too high the object accelerates down the conveyor.

The object should only move when in contact with the conveyor and I am using collision start and end events to track that.

If I turn off the friction it behaves like ice and I don’t want that.

I want to avoid trying to build rigidbodies underneath the object which are moving (like a real conveyor) because it’s not very scale-able and I might want dozens of these conveyors in operation.

Anybody got any good suggestions?

You can use linearVelocity property to set exact speeds.

But in this case you probably want to still use applyForce but using some math where you get linearVelocity first, and check if speed is more or less than it needs to be, and then applyForce accordingly to adjust the speed.

That’s spooky, that’s exactly what I tried but it also had some unrealistic results. In the end I have gone for just reducing the force down to something which “looks” about right.