Так ты просто задаешь слой объекту. Сам слой задай в инспекторе игроку, а в своей функции добавь 4-й аргумент, отвечающий за слой:
Physics2D.Raycast(transform.position, Vector2.right, spacing, 1 << LayerMask.NameToLayer("Player"));
Так рейкаст будет реагировать только на коллайдер игрока и игнорировать все остальные.
У объекта, который создает рейкаст, есть коллайдер?
Если да - возможно рейкаст просто попадает "сам в себя". Тогда нужно использовать слои, чтобы рейкаст срабатывал только при попадании в объекты определенного слоя и игнорировал остальные коллайдеры.
И еще на будущее - вместо сравнения тегов с помощью ==, используйте CompareTag - hit.collider.CompareTag("Player")
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Physics2D.Raycast(transform.position, Vector2.right, spacing, 1 << LayerMask.NameToLayer("Player"));
Так рейкаст будет реагировать только на коллайдер игрока и игнорировать все остальные.