I’m very new to Unity so if I’m missing something obvious here, let me know!
In my project, I have a plane (floor), a sphere and a torus (imported OBJ from Google Sketchup). The sphere and plane are pretty much unedited from the default settings, other than adding a rigidbody to the sphere.
The plane and sphere work fine, as in the plane does not move and the sphere does not go through it. However, I’m getting some problems with the torus. The collisions with the sphere seem to be working; they do not go through each other and bounce off each other as they should. My problem is that when both are dropped onto the plane, the sphere collides and the torus goes through as if it wasn’t there.
I’m confused as to what I’m missing here; the sphere is fine and the floor works with it, so why shouldn’t the torus?
Unity (and, I suspect, most game engines) works best using its built-in colliders, or “compound colliders” made by combining built-ins (two spheres with a long box in the middle, etc… .) Colliders you create (called Mesh colliders) are slower and trickier to deal with. There are some special rules to get them to work properly (and a few things only work with the basics.)
I’d guess the floor is also using a mesh collider. Two mesh colliders don’t always play well together. One of them needs to be marked Convex (do it on the Torus and you’ll see what that is) Unity - Manual: Mesh Collider component reference
But the floor should be replaced with a Unity Box collider anyway. The sphere should probably be replaced with a Sphere collider. And, ideally, the Torus should have a low-poly version which is used for the Mesh collider (for speed.)