Объявление
public int Raycast(Vector2 direction, RaycastHit2D[] results, float distance = Mathf.Infinity, int layerMask = Physics2D.AllLayers, float minDepth = -Mathf.Infinity, float maxDepth = Mathf.Infinity);public int Raycast(Vector2 direction, ContactFilter2D contactFilter, RaycastHit2D[] results, float distance = Mathf.Infinity);
Параметры
direction | Вектор, представляющий направление луча. |
results | Массив для получения результатов. |
distance | Максимальное расстояние, на которое можно передать луч. |
layerMask | Фильтр для проверки объектов только на определенных слоях. |
minDepth | Включайте только объекты с координатой Z (глубиной) больше этого значения. |
maxDepth | Включайте только объекты с координатой Z (глубиной) меньше этого значения. |
contactFilter | Результаты фильтрации, определенные контактным фильтром. |
Возвращает
int Количество возвращенных результатов.
Описание
Направляет в сцену луч, который начинается с позиции коллайдера и игнорирует сам коллайдер.
Эта функция аналогична функции [[Physics2D::RaycastNonAlloc]] и таким же образом результаты возвращаются в предоставленном массиве. Целочисленное возвращаемое значение — это количество объектов, пересекающих луч (возможно, ноль), но размер массива результатов не будет изменен, если он не содержит достаточного количества элементов для отчета обо всех результатах. Значение этого заключается в том, что для результатов не выделяется память, поэтому производительность сборки мусора повышается при частом выполнении raycast.
Перегрузки этой функции, использующие contactFilter
, фильтруют результаты с помощью параметров, доступных в ContactFilter2D.
Кроме того, это также обнаружит другие коллайдеры в начале луча. В этом случае луч начинается внутри коллайдера и не пересекает поверхность коллайдера. Это означает, что нормаль столкновения не может быть вычислена, и в этом случае возвращаемая нормаль столкновения устанавливается на обратную проверяемому вектору луча. Это легко обнаружить, поскольку такие результаты всегда имеют долю RaycastHit2D, равную нулю.
Смотрите так же: LayerMask class, RaycastHit2D class, [[Physics2D::RaycastNonAlloc]], [[Physics2D::AllLayers]], [[Physics2D::IgnoreRaycastLayer]], [[Physics2D::raycastsHitTriggers]].
Объявление
public int Raycast(Vector2 direction, ContactFilter2D contactFilter, ListПараметры
direction | Вектор, представляющий направление луча. |
contactFilter | Результаты фильтрации определяются контактным фильтром. |
results | Список для получения результатов. |
distance | Максимальное расстояние, на которое можно передать луч. |
Возвращает
int Количество возвращенных результатов.
Описание
Направляет в сцену луч, который начинается с позиции коллайдера и игнорирует сам коллайдер.
Эта функция аналогична функции [[Physics2D::RaycastNonAlloc]] и таким же образом результаты возвращаются в предоставленном списке. Целочисленное возвращаемое значение — это количество коллайдеров, пересекающих луч (возможно, ноль). Список результатов будет изменен, если он не содержит достаточного количества элементов для отчета обо всех результатах. Это предотвращает выделение памяти для результатов, когда нет необходимости изменять размер списка results
, и повышает производительность сборки мусора при частом выполнении запроса.
Кроме того, это также обнаружит другие коллайдеры в начале луча. В этом случае луч начинается внутри коллайдера и не пересекает поверхность коллайдера. Это означает, что нормаль столкновения не может быть вычислена, и в этом случае возвращаемая нормаль столкновения устанавливается на обратную проверяемому вектору луча. Это легко обнаружить, поскольку такие результаты всегда имеют долю RaycastHit2D, равную нулю.
Смотрите так же: RaycastHit2D class.