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

PhysicsScene2D.GetRayIntersection

Объявление

public RaycastHit2D GetRayIntersection(Ray ray, float distance, int layerMask = Physics2D.DefaultRaycastLayers);

Параметры

ray Трехмерный луч, определяющий исходную точку и направление для проверки.
distance Максимальное расстояние, на которое можно передать луч.
layerMask Фильтр для обнаружения коллайдеров только на определенных слоях.

Возвращает

RaycastHit2D Результаты броска возвращены.

Описание

Направить 3D-луч на коллайдеры в PhysicsScene2D, возвращая только первое пересечение.

Raycast концептуально похож на лазерный луч, испускаемый из точки в пространстве в определенном направлении. Любой объект, соприкасающийся с лучом, может быть обнаружен и сообщен. Raycasts полезны для определения линии прямой видимости, целей, пораженных огнестрельным оружием, и для многих других целей в игровом процессе.

В отличие от Raycast, которая выполняет тест 2D-пересечения, эта функция выполняет тест 3D-пересечения на 2D-коллайдерах. Он делает это, проецируя 3D-луч в 2D-пространство, а затем выполняет тест 2D-пересечения, упорядочивая результаты по направлению Z исходного 3D-луча. В этом случае возвращается только первый результат.

Эта функция возвращает объект RaycastHit2D со ссылкой на Collider2D, в который попадает луч (свойство коллайдера результат будет NULL, если ничего не было поражено).

Маска layerMask может использоваться для выборочного обнаружения объектов только на определенных слоях (например, это позволяет применять обнаружение только к вражеским персонажам). Перегрузки этого метода, использующие contactFilter, могут фильтровать результаты с помощью параметров, доступных в ContactFilter2D.

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

Смотрите так же: PhysicsScene2D class, RaycastHit2D class, Physics2D.DefaultRaycastLayers, Physics2D.IgnoreRaycastLayer, Physics2D.queriesHitTriggers.


Объявление

public int GetRayIntersection(Ray ray, float distance, RaycastHit2D[] results, int layerMask = Physics2D.DefaultRaycastLayers);

Параметры

ray Трехмерный луч, определяющий исходную точку и направление для проверки.
distance Максимальное расстояние, на которое можно передать луч.
results Массив для получения результатов. Размер массива определяет максимальное количество результатов, которые могут быть возвращены.
layerMask Фильтр для обнаружения коллайдеров только на определенных слоях.

Возвращает

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

Описание

Направить 3D-луч на коллайдеры в PhysicsScene2D, возвращая все пересечения.

Raycast концептуально похож на лазерный луч, испускаемый из точки в пространстве в определенном направлении. Любой объект, соприкасающийся с лучом, может быть обнаружен и сообщен. Raycasts полезны для определения линии прямой видимости, целей, пораженных огнестрельным оружием, и для многих других целей в игровом процессе.

В отличие от Raycast, которая выполняет тест 2D-пересечения, эта функция выполняет тест 3D-пересечения на 2D-коллайдерах. Он делает это, проецируя 3D-луч в 2D-пространство, а затем выполняет тест 2D-пересечения, упорядочивая результаты по направлению Z исходного 3D-луча.

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

Маска layerMask может использоваться для выборочного обнаружения объектов только на определенных слоях (например, это позволяет применять обнаружение только к вражеским персонажам). Перегрузки этого метода, использующие contactFilter, могут фильтровать результаты с помощью параметров, доступных в ContactFilter2D.

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

Все результаты отсортированы по возрастанию расстояния.

Смотрите так же: PhysicsScene2D class, RaycastHit2D class, Physics2D.DefaultRaycastLayers, Physics2D.IgnoreRaycastLayer, Physics2D.queriesHitTriggers.

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