OnCollisionStay problem

So, I need to know if my player with a sphere collider is inside of a mesh collider of another object. OnCollisionStay works only some times.
It seems that the problem is that OnCollisionStay is called only when the player collider is touching the wall of the mesh collider. This means that the player can be inside of the mesh collider without calling OnCollisionStay as long as it’s not touching the outer shell of the mesh collider.

How do I test if a collider is inside the volume of another collider?

I suppose u could check if the players co-ordinates are within a certain distance of the objects center …
I’m not real good at this but maybe …

function checkDistance (position : Vector3) {

	if (Vector3.Distance (transform.position, position) < 10) {
		dowhatyouaregonnadohere;
	}
	// We are still outside the distance sphere, so just return the objects position
	else {
		return transform.position;
	}
}

… could work …

good luck

Unfortunately, the mesh i am detecting are pieces of the level. Literally every piece is concave and the collation detection must be very accurate, otherwise there would be a lot of glitches.
I’ve also looked at using multiple box colliders, but that would need a lot of objects and would be very costly because I need it to be able to run on an iphone. Plus, Im not sure if box colliders would act any differently than a mesh collider.
Since the mesh colliders are already the exact shape of the level, I’d rather use those.