Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Объявление

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 results, float distance = Mathf.Infinity);

Параметры

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

Возвращает

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

Описание

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

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

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

Смотрите так же: RaycastHit2D class.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3