Only detecting collision from the bottom.

So I'm currently using this to detect a collision between a character and a block:

function OnControllerColliderHit (hit : ControllerColliderHit){
        print("Called it");
}

My problem is i'm changing gravity half way through. It only detects collisions with the floor and not with the ceiling. If gravity starts upside down and him on the ceiling then it still doesn't detect the ceiling and yet its not a problem with the ceiling blocks because if i move them underneath the character then it detects collisions with them. I've therefore drawn to the conclusion that it only detects collisions with the bottom half of the character.

Does anyone know how I can solve this (I've tried rotating the character, still only detects floor collisions)

If all you're doing is printing to the console, make sure you don't have the "collapse" option turned on in the console. It collapses duplicate messages to prevent spamming.

works great for me. u can also check with `hit.gameobject.tag`