Character Controller wont collide (not a trigger issue)

I have a cube set up as a non trigger and a character controller but OnControllerColliderHit is not working. I can get it to display a message if i use OnTriggerEnter when the cube is set up as a trigger but then the cube wont collide with anything as its now a trigger. There is also doesnt appear to be reason why this should not work but it doesnt.

void OnColliderEnter (Collision hit)
{
print(“hit”);
}

So a recap. OnTriggerEnter works but OnColliderEnter does not, nor does OnControllerColliderHit. This happens regardless of whether i have a rigidbody on anything or not so i am definitely missing something. All the other answers on the same subject when googling “character controller not colliding” unfortunately are not what i am looking for as they still dont work.

Thanks in advance!

OnCollisionEnter (not OnColliderEnter) won’t be called unless there is a rigidbody attached.

OnControllerColliderHit will only be called if you move the character controller using SimpleMove or Move, while that move is occurring.

If you need more than this then you should add a rigidbody (set to isKinematic) and use OnCollisionEnter.

I see the solution. I found it here.