Colliders define the physical boundaries of a Rigidbody. To allow collisions to occur, you must add Colliders to a GameObject alongside a Rigidbody.
If one Rigidbody collides with another, the physics engine only calculates a collision if both GameObjects have a Collider attached. If one GameObject has a Rigidbody but no Collider, it passes through other GameObjects, and Unity does not include it in collision calculations.
The relative Mass of each Rigidbody in a collision determines how they react when they collide with each other.
See Collision for more information.
The PhysX physics system requires that any collider you place on a non-kinematic Rigidbody is convex, not concave. All primitive shapes in Unity are convex. However, Unity considers a Mesh Collider concave by default.
If you apply a default Mesh Collider to a non-kinematic Rigidbody, Unity throws an error at runtime. To ensure that your non-kinematic Rigidbody receives physics-based forces, you need to instruct Unity to make the Mesh Collider convex. To do this, enable the Mesh Collider’s Convex property. When Convex is enabled, Unity automatically calculates a convex collider shape (called a hull) based on the associated mesh. However, because the convex hull of the mesh is only an approximation of the original shape, it can lead to inaccurate simulation.
For a more accurate collision simulation, you can use one of the following approaches:
If a Rigidbody is kinematic (that is, it receives no physics-based forces), you can apply any collider to it.