Если по правильному то Raycast исходит из центра объекта, и он сразу врезается в свой же коллайдер. Соответственно точку из которой посылается луч, нужно вынести за пределы коллайдера. У вас же обратная ситуация, луч посылается откуда-то из вне со смещением, в центр нашего объекта. Из чего следует вывод, что если между точкой откуда идёт луч и до центра персонажа, нет никаких других коллайдеров, то он попадает в персонажа.
Вариант решения:
- Отрисовать луч через Debug.DrawRay или Debug.DrawLine (что-то такое и настроить правильное смещение конечной точки).
- Экспериментальным путём найти подходящие значения.
- Создать в персонаже 2 дополнительных ГО и использовать их как конечную и начальную точки луча.