Если вы пользуетесь CharacterContoller то с осторожностью относитесь к коллизиям.
Узнать о столкновении с объектом на котором есть этот скрипт бывает проблематично. Обычные OnCollisionEnter не всегда срабатывают, а точнее они не работают если объект с CharacterContoller`ом двигается
методом Move. Тут на помощь и приходит OnControllerColliderHit. Который не срабатывает если объект находится в покое. Вот такие пироги.