Quick answer: PhysX convex hulls cap at 255 vertices. For complex shapes, decompose into multiple convex pieces (V-HACD or Mesh Baker plugin) and add a MeshCollider per piece. For dynamic Rigidbodies, this is the only correct approach — non-convex Mesh-vs-Mesh isn’t supported.
Detailed kart mesh used as a Rigidbody collider. Convex MeshCollider produces a wrap that loses the wheel arches and rolls oddly. The simplification is the 255-vertex cap; multiple convex pieces are the answer.
The Symptom
Convex MeshCollider on a complex mesh produces a coarse hull visibly different from the source. Physics interactions feel wrong — objects can’t fit into negative spaces, balance is off.
The Fix
Decompose with V-HACD. Use the Asset Store package “Convex Decomposition” or run V-HACD offline (Blender plugin, command-line tool) and import the pieces.
Result: the original mesh becomes a hierarchy of child meshes, each approximating a convex region. Add a MeshCollider with Convex = true to each child.
Vehicle (root)
— VisualMesh (MeshFilter + MeshRenderer)
— Collision (Empty)
— Hull_001 (MeshCollider Convex)
— Hull_002 (MeshCollider Convex)
— Hull_003 (MeshCollider Convex)
...
Multiple convex hulls collide with everything, including dynamic-vs-dynamic.
Primitive Composite
For simpler shapes, hand-build with Box/Sphere/Capsule colliders. A car can be one big Box plus four Capsules for wheel wells. Cheaper than mesh colliders and very controllable.
Performance
Each convex hull is a separate collision object. 10 hulls cost roughly 10x of one. Aim for 4–12 hulls per object for vehicles or large props; 1–3 for smaller items.
Verifying
Show physics colliders in Scene view. The combined collider hull should match the visible mesh outline. Drop the object on a complex surface; behavior should match expectations.
“Decompose. Compose. Multiple convex pieces are the rigid-body-friendly path.”
Related Issues
For Rigidbody sleep, see Rigidbody sleep. For tilemap collider edges, see tilemap collider.
Decompose. Multi-hull. Physics behaves.