Довольно долгое время была проблема в игре, что боты порой могли упереться в стенку и пытаться пройти сквозь неё. И так пробовал понять, в чём проблема, и сяк. Ну да, довольно быстро понял, что рейкасты не проходят, но почему?
С чего начинается обычно проверка? Хм, может с коллайдерами что-то? Давайте посмотрим.
Да нет, вроде всё нормально. Хотя…Давай-ка стенку уберу, оставляю только башню.
Видно же, что Raycast проходит точно сквозь коллайдер, так в чём проблема?
И тут случайно в инспектор посмотрел на имя слоя.
А теперь посмотрим на код, который маски для зданий формирует.
1 |
m_BuildingMask = LayerMask.GetMask("Default", "BuildingTeam1", "BuildingTeam2"); |
Я вот тоже не сразу заметил, чем они отличаются. Урок на сегодня: перепроверяйте названия слоёв и масок.