Объявление
public static RaycastHit2D[] RaycastAll(Vector2 origin, Vector2 direction, float distance = Mathf.Infinity, int layerMask = DefaultRaycastLayers, float minDepth = -Mathf.Infinity, float maxDepth = Mathf.Infinity);Параметры
origin | Точка в 2D-пространстве, откуда исходит луч. |
direction | Вектор, представляющий направление луча. |
distance | Максимальное расстояние, на которое может быть направлен луч. |
layerMask | Фильтр для обнаружения коллайдеров только на определенных слоях. |
minDepth | Включайте только объекты с координатой Z (глубиной) больше или равной этому значению. |
maxDepth | Включайте только объекты с координатой Z (глубиной) меньше или равной этому значению. |
Возвращает
RaycastHit2D[] Результаты броска возвращены.
Описание
Направляет луч на коллайдеры в сцене, возвращая все коллайдеры, соприкасающиеся с ним.
Raycast концептуально похож на лазерный луч, испускаемый из точки в пространстве в определенном направлении. Любой объект, вступивший в контакт с лучом, может быть обнаружен и отправлен в отчет.
Эта функция аналогична функции Raycast, но вместо обнаружения только первого коллайдера, в который попал, возвращается массив всех коллайдеров на пути луча. Коллайдеры в массиве отсортированы по расстоянию от исходной точки. layerMask можно использовать для выборочного обнаружения объектов только на определенных слоях (например, это позволяет применять обнаружение только к вражеским персонажам).
Рейкасты полезны для определения линии прямой видимости, целей, пораженных огнестрельным оружием, и для многих других целей в игровом процессе.
Кроме того, это также обнаружит коллайдер(ы) в начале луча. В этом случае луч начинается внутри коллайдера и не пересекает поверхность коллайдера. Это означает, что нормаль столкновения не может быть вычислена, и в этом случае возвращаемая нормаль столкновения устанавливается на обратную проверяемому вектору луча. Это легко обнаружить, поскольку такие результаты всегда имеют долю RaycastHit2D, равную нулю.
Смотрите так же: LayerMask class, RaycastHit2D class, Raycast, Linecast, DefaultRaycastLayers, IgnoreRaycastLayer, raycastsHitTriggers.