THIN objects can fall through the ground? (AMAZING SOLUTION)

Important … the incredible solution proposed by Kromenak below is perfectly correct.

The final, total solution to this huge problem, is that your ground must be “thick”.

Looking at say a football field, I simply set the box collider that makes the ground, to be 100 meters “thick” (i.e. “into the ground” if you will). This absolutely and totally solves the problem. A truly brilliant solution from Kromenak. Thank you Kromenak!


Hello experienced developers …

I’ve noticed THIN (ie, flattish) objects – imagine say a “plank” – can fall through the ground.

It makes no difference if the ground is a mesh collider or just a big flat collider.

Make a ground surface say about an acre big. Make some “planks” that are typical plank size … 2 meters long, 0.5 meters wide, and a few inches thick. Obviously add a rigidboy, box collider, realistic weight, physicmaterial, etc etc.

Let them drop down at different angles from a meter or two.

If they are too thin – they very often MAKE THEIIR WAY THROUGH the floor and fall away to hell.

Typically, if you make them THICKER – more than, say, oh, 10 cm or so – it tends to stop the problem.

This is all quite problematic if you have flat, or thin, things you want to knock about.

What’s going on here? Do any experts, drunk or sober, know what this is all about? Is it something every experienced developer knows, and you just have to live with it??

If you have actually lived with this specific problem, please write back ! Cheers and thanks…

This is actually a well-known issue in all of game development that has to do with the way that physics are simulated in games. It is sometimes called the “Bullet Through Paper” problem.

This problem occurs because physics in games is not actually continuous. The game is taking a series of snapshots of your scene (sometimes called “physics steps”) and using those snapshots to see if things are colliding. If, in a snapshot, two objects are colliding or overlapping, the physics system can take the correct action and stop the objects from going through one another.

However, a common problem for fast-moving or thin objects is that on one step, the moving object will be falling towards a surface, but then after the object’s next position is calculated from its velocity, it has completely moved past the floor or other object. The physics system never sees a snapshot with the two objects touching, so it never thinks they collided.

To fix this, you can use the built-in Unity tools - particularly, setting a moving object like your plank to “Continuous Dynamic” collision in its rigidbody settings, and setting the floor to “Continuous” collision. If you are using mobile devices though, this will probably be too expensive. In those cases, you can also just use thicker objects - if you need to use a thin plank, you can also make the floor thicker.

Another thing to try is to change the fixed timestep so that the physics system takes more snapshots, thereby making it less likely for this to occur. This will also cost more performance, though.

or you can make the collider thicker

@kromenak the collision detection change didn’t help me. I have static collider (no rigidbody, just a mesh collider) which is something around 3 units “thick” and a really small rigidbody (0.1 unit average) with continious dynamic collision. However when character controller jumps or steps on small collider it falls through static thick collider…