hi , i give rigidbody for my object i shoot , and use rigidbody.AddForce to make the object moving forward. Some times, the speed will be very high, and the object pass through other collider objects, i use mesh collider and i cant use box or sphere collider ,but i use it to test and i face the same problem .
what is the solution
If it only passes through when your speed is high, then you are suffering from a “frame miss”.
Normal Unity collision only checks for collision at the position the object is in during a frame. If it moves so fast that its on one side of the colliding object on one frame and the other side the next, it will miss the collision.
The solution is to change the rigid body collision mode Unity - Scripting API: Rigidbody.collisionDetectionMode
Note however that this seriously increases the cost of collision detection.
I second the ‘frame miss’ answer. I just got through this mystery and now can cause it on purpose. Slow down your object or put the collsion code in FixedUpdate();
I had a similar issue where my “meshCollider” passes through the ground. Later I found out that to keep the ground from falling, I set constraints to position and rotation rather than setting it to kinematic.