Ensuring completely smooth movement along a series of box colliders

I am making a puzzle game which involves objects moving around a level influenced by gravity.

Sometimes an object will fall ‘freely’, IE, in mid air. Other times, an object will fall whilst brushing a flat surface comprised of a series of box colliders that are perfectly aligned with each other.

The issue is that objects that are brushing along the box colliders will fall slightly slower and sometimes they will bounce away from the surface at the point where two box colliders meet.

Here’s an image more clearly demonstrating what the issue is.


Obviously this is very annoying and isn’t what I want.

There is 0 friction on each surface, there is 0 friction set in the physics material, both objects are completely identical in mass, drag, and the box colliders are perfectly aligned with each other.

I don’t wish to use a single box collider that covers the entire surface as I would really prefer to stick with my modular approach of level design which makes propogating changes across multiple levels incredibly easy.

So my question is how can I solve this problem?

the problem is the the physics in unity is not perfect and the falling box may be too close to the wall try offsetting it by about .01, you can also select freeze rotation in the rigid body options

Alternatively, you could create an empty gameobject and attach a box collider for the ground to it. You could use collision layers to make sure the ground collider does not interfere with the rest of the geometry, only with the player. Set the ground collider a tiny bit above the (uneven) floor geometry and it should roll smoothly. You can make the ground collider stretch large patches and it will be a continuous object.