Problem with Mesh collider that is not working

I have several Mesh and they all have a Mesh Colliders (not concave).
The collision with a box Collider (the floor) is working.
But the collision with each other, is not.

I can move each of them and pass thru each other. They move slightly, so I guess something is happening.

If I set the Concave flag, it works perfect but of course the collision are not good because of the shape of the objects.

Anyone can help with why it works with Concave set and not in non-concave mode?

(duplicate post)

I guess when you say concave you really mean convex (see Concave vs Convex).
The main reason you’re having problems is because in Unity mesh colliders can only collide with each other if at least one of them has the convex option set. This is an internal physics engine limitation, because concave vs concave collisions are very expensive to compute. Basically it means if two mesh colliders (without the convex option set) collide, it won’t be registered by Unity.

Setting the convex option in your case means your collisions won’t be accurate in some areas, mainly where the dents are. The solution is creating a compound collider using multiple collider primitives like boxes. You approximate the volume by creating multiple childs gameobjects, each with a box collider attached, placing them so that all boxes fill up the parent’s volume.
Compound colliders are described here: http://docs.unity3d.com/Documentation/Components/class-BoxCollider.html (scroll down until the compound collider section).

Another alternative to this is to use a component we’ve developed for Unity3D called Concave Collider that automatically creates a compound collider for you.
You can check a video of how it’s used here: YouTube
It is available at the Unity Asset Store here: Asset Store link

Here’s a screenshot that compares the two colliders (the convex collider and our concave collider)