rigidbody sphere falls through collider plane

Hi, first of all: I'm absolutely new to Unity (v2.6.1)... I've created a plane and a sphere in Maya (for a simple pinball game I'd like to create in Unity) and exported both as one FBX file (including normals).

In Unity I attached a rigidbody and a sphere collider to the sphere ("use gravity" set to true), and a mesh collider to the plane ("IsTrigger" set to false for both objects). The sphere is placed above the surface. When I hit "play" the ball falls through the plane to infinity. If I enlarge the sphere collider quite a lot (about three times the size of the sphere geometry), it still falls through the plane but keeps hanging under the plane. If I scale the sphere collider even more the sphere falls down and its collider rolls over the surface of the plane (the sphere is of course "floating" in the air - because I expect only the colliders are used for physics calculations).

Any idea what's my mistake?

Fast movement and/or thin colliders are a real issue when using physics.

You're right, movement is taht fast and there is no interpolate between frames, so an object can pass through another thin object (because their positions never actually collided each other)

You can try to bypass with a raycast collider searching for possible colliders like in the script DontGoThroughThings here:


That script can help a lot with that problem, but is no 100% fail-safe, so try to make colliders as thick as you can.

Make sure your sphere is somewhere around (1,1,1) in scale. Change the scale factor in the mesh importer if necessary. Having a mesh collider for a flat plane is perfectly fine; this is what the default Unity plane has. But the physics engine does not like small objects.

For a pinball game, I would increase the physics timestep quite a bit so physics runs at least 100fps. This does of course increase the CPU power needed, but a pinball game doesn't have many moving objects so that shouldn't be an issue.

I think MeshColliders don't work for totally flat planes. Use a plane collider instead.

I hope you meant by "posting the meshcollider" posting a screenshot of the Inspector view. There you go:

http://www.freeimagehosting.net/uploads/df1ca0f4dc.jpg PlaneInspector

Concerning the plane collider: did you mean the box collider? I've tried to use the box collider instead of the mesh collider but the sphere still falls through the plane (even if I enlarge the height of the box collider, which was originally set to 0).

Another thing I've discovered: if I place a Unity cube beneath my plane, the sphere falls through this box, if it is scaled very flat, and doesn't fall through it, if the cube is thicker (having a box collider attached to the cube).

Ok, when I scale the whole scene up (about 86 units), the sphere falls down ONTO the plane (and no longer through it).

Strange... maybe a precision issue in Unity/PhysX?

Next problem concerns left and right flipper of my pinball game: when the ball rolls down the surface to the flippers (convex MeshCollider and rigidbody with IsKinematic set to true), it hits the flippers correctly, but when I animate them to flip up (which is a quite fast movement), the ball isn't pushed away as expected (though the ball moves a bit...). Is it possible, that colliders can move too fast through other rigid bodies so that no collision was actually noticed by the physics system?

oddly, a 1 meter box will sit firmly on a 20m plane but it will fall through a plane of 2000m

Try using cube instead of plane