Unable to pass a torus through a pipe


Hello,
I have to pass a torus through a pipe. However, I am not able to do it even after multiple trials and going through similar questions on this forum.

I have imported a low poly Torus from Maya into Unity, added a rigid body and Mesh collider (Convex). The pipe is a cylinder primitive from Unity with a Mesh Colloider. Both of them are on a plane. On adding a rigid body with Gravity, the torus doesn’t pass through the pipe, rather stands on it as if something is blocking it?
What is the mistake I am making? Any suggestions?
Best,
Yesh.

When you make a collider “convex”, there are two operations that happen to it. The first is that it limits the number of triangles on the collider. (I forget the exact number) The second is that it adjusts the shape of the collider to contain the mesh, but have no concave angles. This means no holes. A convex collider acts like a shell that surrounds the mesh with no gaps. What you are attempting to do cannot be done with a single convex collider. You have two options:

  1. Add several primitive colliders (sphere, box, capsule) to the torus mesh and align them as best you can using the component settings.

  2. Adding several child game objects that have colliders, while keeping the RigidBody component on the main torus. Align the children around the torus such that the colliders roughly mimic the shape of the torus itself.

Hope this helps!