Wrong normals on collision

I’ve got a strange problem.
The thing is, I’ve got a vehicle (a rigidbody with two box colliders as children) which is moving forward (no turning). Once it hits something from the front (and front only) the player loses.

I did it by checking something like

if(contact.normal.normalized.z > .98f)

and it got me good results when I was using a capsule collider for tests, but now for one reason or another, after changing the model and colliders a bit, I tend to get a normal which is pointing upwards!

Why? What the heck is wrong with my project?

the best way to check if something hit “the front” and “the front only” is this,

just make another small collider - perhaps a trigger if you prefer - that only sits at the front of the model.

the rest of the colliders will handle ordinary bouncing around, etc.

but when THAT box is triggered, you KNOW it’s the front pf the car that is hit.

this is totally ordinary SOP. i was just lookin’ at a spacecraft that had a dozen little colliders/triggers here and there for different reasons.

you’re .98f thing will never really work because when two unusual shapes of colliders touch, and who knows what is bouncing around where, it’s hard to guess the angle of contact.

anyway fortunately it is incredibly easy add a “logic collider” like I describe, far easier than what you are doing.

always think about what you are “actually saying”. you’re “saying” that if something touches the frone of the car, that’s a game over. ok so you clearly need a trigger or collider on the front of the car ! go for it.