I'm using Physics.Raycast on my bullets to determine if they hit something, however it doesn't always work. The part that makes it weird, is that I can repeatedly fire bullets at the same object, from the exact same angle and watch as most hit, but occasionally one misses. Other times, I can get a situation where every single bullet misses an object as the raycast fails, but if I pause the game and step through frame by frame, every bullet hits. I get this with both box colliders and mesh colliders. The bullet object itself has it's axis at the trailing end. The physics.raycast uses this axis point as the origin, and the position for next frame plus 5% to ensure a bit of overlap to prevent it from missing surfaces lying right at the origin. The raycast is done in the bullet objects Update() function.