Unity 6.3
0 онлайн 90 гостей 3 в системе
Вход

Collider2D.Raycast

Declaration

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);

Параметры

Параметр Описание
направление Вектор, представляющий направление луча.
результаты Массив для получения результатов.
расстояние Максимальное расстояние, на которое может быть брошен луч.
layerMask Фильтр для проверки объектов только на определенных слоях.
minDepth Включить только объекты с координатой Z (глубиной) большей, чем это значение.
maxDepth Включить только объекты с координатой Z (глубиной) меньше этого значения.
contactFilter Результаты фильтрации, определенные фильтром контакта.

Возвращаемое значение

инт Количество возвращенных результатов.

Описание

Отправляет луч в Scene, который начинается в позиции Collider и игнорирует сам Collider.

Возвращаемое целое число — это число объектов, пересекающих луч (возможно, нулевой), но массив результатов не будет изменен, если он не содержит достаточно элементов, чтобы отобразить все результаты. Значение этого заключается в том, что для результатов не выделяется памяти, и поэтому производительность сбора мусора улучшается, когда часто выполняются трансляции луча.

Перегрузки этой функции, которые используют contactFilter фильтрует результаты по параметрам, доступным в ContactFilter2D.

Кроме того, это также обнаружит другие Collider(s) в начале луча. В этом случае луч начинается внутри Collider и не пересекает поверхность Collider. Это означает, что нормаль столкновения не может быть рассчитана, в этом случае возвращаемая нормаль столкновения устанавливается на обратную величину тестируемого вектора луча. Это легко обнаружить, поскольку такие результаты всегда находятся в RaycastHit2D доле от нуля.

NOTE: Все результаты отсортированы в порядке возрастания расстояния i.e. первый результат является ближайшим.

Дополнительные ресурсы: LayerMask class, RaycastHit2D класс, [[Physics2D::AllLayers]], [[Physics2D::IgnoreRaycastLayer]], [[Physics2D::raycastsHitTriggers]].

Declaration

public int Raycast(Vector2 direction, ContactFilter2D contactFilter, List<RaycastHit2D> results, float distance = Mathf.Infinity);

Параметры

Параметр Описание
направление Вектор, представляющий направление луча.
contactFilter Результаты фильтрации, определенные фильтром контакта.
результаты Список для получения результатов.
расстояние Максимальное расстояние, на которое может быть брошен луч.

Возвращаемое значение

инт Количество возвращенных результатов.

Описание

Отправляет луч в Scene, который начинается в позиции Collider и игнорирует сам Collider.

Возвращаемое целое число — это число коллайдеров, которые пересекают луч (возможно, нулевой). Список результатов будет изменен, если в нем не будет достаточно элементов для отображения всех результатов. Это предотвращает выделение памяти для результатов, когда results список не нуждается в изменении размера, и улучшает производительность сбора мусора, когда запрос выполняется часто.

Кроме того, это также обнаружит другие Collider(s) в начале луча. В этом случае луч начинается внутри Collider и не пересекает поверхность Collider. Это означает, что нормаль столкновения не может быть рассчитана, в этом случае возвращаемая нормаль столкновения устанавливается на обратную величину тестируемого вектора луча. Это легко обнаружить, поскольку такие результаты всегда находятся в RaycastHit2D доле от нуля.

NOTE: Все результаты отсортированы в порядке возрастания расстояния i.e. первый результат является ближайшим.

Дополнительные ресурсы: RaycastHit2D class.