# How can I make a conveyor belt?

I’m trying to make a physics driven conveyor belt at the moment, and I tried to make one from cylinders rotating but it doesn’t seem to work very well. I have to put the friction really high, and even then it slips unless it rotates very slowly.

Is there a better way to make a simple conveyor belt?

To accomplish this I would probably not use physics directly, and instead write a script that on collision with the rollers added a horizontal force to the box. There’s probably a way to have the center of force at the point where the collision occurs which would heighten the realism a bit (that way if the belt touches a corner of the box it rotates the box while propelling it). If you went this route you could then create a model that looks more like a conveyor belt (instead of rollers).

Oh you’re right, that works pretty well! Thanks!

I wonder how I can put curves in the conveyor belt with this method, but hopefully with some well thought out colliders it should naturally follow a path with some encouragement. Hmm.

Perhaps by applying the force in the original “forward” direction of the roller that the box is colliding with? A slowly curving path should yield a series of forces that make it turn.

I’d also keep some borders, to “fence in” the box just in case.

Hmm… how about using a surface dotted with spheres to create an air-hockey like effect by making the spheres act as ball bearings?

This worked well for me:

``````var speed : float = 2.0:
OnTriggerStay(other) {
other.rigidbody.MovePosition(other.transform.position + transform.forward * Time.deltaTime * speed);
}
``````

It’s kinda in-between physics and kinematic. ie It’s really predictable and simple, but it’s still dynamic.

Hello, I made a conveyor belt asset that you might like to take a look at.

Has a moving texture and it moves rigidbody objects that drop on it.
Would love some feedback, cheers!

1 Like