![raycast](https://suvitruf.ru/wp-content/uploads/2017/02/raycast.png)
Довольно долгое время была проблема в игре, что боты порой могли упереться в стенку и пытаться пройти сквозь неё. И так пробовал понять, в чём проблема, и сяк. Ну да, довольно быстро понял, что рейкасты не проходят, но почему?
С чего начинается обычно проверка? Хм, может с коллайдерами что-то? Давайте посмотрим.
![raycast2](https://suvitruf.ru/wp-content/uploads/2017/02/raycast2.png)
Да нет, вроде всё нормально. Хотя…Давай-ка стенку уберу, оставляю только башню.
![raycast3](https://suvitruf.ru/wp-content/uploads/2017/02/raycast3.png)
Видно же, что Raycast проходит точно сквозь коллайдер, так в чём проблема?
![wtf](https://suvitruf.ru/wp-content/uploads/2017/02/wtf.jpg)
И тут случайно в инспектор посмотрел на имя слоя.
![layer](https://suvitruf.ru/wp-content/uploads/2017/02/layer.png)
А теперь посмотрим на код, который маски для зданий формирует.
1 |
m_BuildingMask = LayerMask.GetMask("Default", "BuildingTeam1", "BuildingTeam2"); |
![w8_a_minute](https://suvitruf.ru/wp-content/uploads/2017/02/w8_a_minute.jpg)
Я вот тоже не сразу заметил, чем они отличаются. Урок на сегодня: перепроверяйте названия слоёв и масок.