Показать сообщение отдельно
Старый 13.03.2013, 17:24   #962
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Интересно, тыркался пыркался, еле допёр что это делает ))

Получается LayerMask.NameToLayer("") возвращает нам номер слоя (8-й), а надо использовать получается Бит из возможных 32-х.

Т.е. если надо использовать для рейкаста 3,5,6 слоя то надо отправить int:
в десятичной = 2^3 + 2^5 + 2^6 = 104 (галки это степени)
либо бинарной = ...0000000110100 = 104

т.е.
lay = 1 << (int)LayerMask.NameToLayer("JustRayCast");
lay += 1 << (int)LayerMask.NameToLayer("Default");

равносильно
lay = Mathf.Pow(2,LayerMask.NameToLayer("JustRayCast")) + Mathf.Pow(2,LayerMask.NameToLayer("Default"))

Прям теорема получилась
Правда запись не упростилась ))
Ну так, для общего развития пойдёт!
__________________
(Offline)
 
Ответить с цитированием