С# в Unity
Physics
Raycast
Способ проверить, пересекает ли воображаемый луч, начинающийся в точке, направленный в определённую сторону, какие-либо коллайдеры.
Hit - структура, содержащая информацию о пересечении луча с коллайдером.
- Работает только с Collider.
- В сандартном варианте луч не проходит сквозь коллайдеры. Соответственно, Hit содержит информацию только об одном этом пересечении.
- Существует перегрузка, которая собирает информацию обо всех пересечениях напротяжении всего луча.
- Результаты собираются в массив или список, в порядке пересечения, а значит, в порядке удаленности от источника луча.
ContactFilter
Структура, позволяющая автоматически фильртовать физические контакты по нескольким критериям. Мощный и гибкий инструмент для тонкой настройки того, какие коллайдеры должны участвовать в физических проверках, включая Raycast, Overlap, BoxCast и другие. Помогает избежать ненужных проверок, улучшая как логику, так и производительность.
Можно задать учет:
layerMask- какие слои учитывать.useTriggers- учитывать ли триггеры.- Прочие критерии:
useLayerMask,useDepth,useNormalAngleи т.д.
Можно настроить один раз и переиспользовать.
- Все
useфлаги отключены по умолчанию. Если не установитьuseLayerMask = true, то layerMask игнорируется. - По умолчанию ничего не фильтруется: если не включить ни один
use, фильтр пропускает все коллайдеры (включая триггеры). useTriggers— особый случай: он сам по себе булев, и не требует отдельного флага.useTriggers = true→ включать триггеры.useTriggers = false→ игнорировать триггеры (чаще всего так и нужно).