Объявление
public RaycastHit2D Raycast(Vector2 origin, Vector2 direction, float distance, int layerMask = Physics2D.DefaultRaycastLayers);public RaycastHit2D Raycast(Vector2 origin, Vector2 direction, float distance, ContactFilter2D contactFilter);
Параметры
origin | Точка в 2D-пространстве, откуда исходит луч. |
direction | Вектор, представляющий направление луча. |
distance | Максимальное расстояние, на которое можно передать луч. |
layerMask | Фильтр, используемый для обнаружения коллайдеров только на определенных слоях. |
contactFilter | Контактный фильтр, используемый для различной фильтрации результатов, например, по маске слоя и глубине Z или нормальному углу. |
Возвращает
RaycastHit2D Результаты броска возвращены.
Описание
Направляет луч на коллайдеры в PhysicsScene2D, возвращая только первое пересечение.
Raycast концептуально похож на лазерный луч, испускаемый из точки в пространстве в определенном направлении. Любой объект, соприкасающийся с лучом, может быть обнаружен и сообщен. Raycasts полезны для определения линии прямой видимости, целей, пораженных огнестрельным оружием, и для многих других целей в игровом процессе.
Эта функция возвращает объект RaycastHit2D со ссылкой на Collider2D, в который попадает луч (свойство коллайдера результат будет NULL, если ничего не было поражено).
Маска layerMask может использоваться для выборочного обнаружения объектов только на определенных слоях (например, это позволяет применять обнаружение только к вражеским персонажам). Перегрузки этого метода, использующие contactFilter
, могут фильтровать результаты с помощью параметров, доступных в ContactFilter2D.
Кроме того, это также обнаружит коллайдер(ы) в начале луча. В этом случае луч начинается внутри коллайдера и не пересекает поверхность коллайдера. Это означает, что нормаль столкновения не может быть вычислена, и в этом случае возвращаемая нормаль столкновения устанавливается на обратную проверяемому вектору луча. Это легко обнаружить, поскольку такие результаты всегда имеют долю RaycastHit2D, равную нулю.
Смотрите так же: PhysicsScene2D, RaycastHit2D, LayerMask, Physics2D.DefaultRaycastLayers, Physics2D.IgnoreRaycastLayer, Physics2D.queriesHitTriggers & Collider2D.Raycast.
Объявление
public int Raycast(Vector2 origin, Vector2 direction, float distance, RaycastHit2D[] results, int layerMask = Physics2D.DefaultRaycastLayers);public int Raycast(Vector2 origin, Vector2 direction, float distance, ContactFilter2D contactFilter, RaycastHit2D[] results);
Параметры
origin | Точка в 2D-пространстве, откуда исходит луч. |
direction | Вектор, представляющий направление луча. |
distance | Максимальное расстояние, на которое можно передать луч. |
layerMask | Фильтр, используемый для обнаружения коллайдеров только на определенных слоях. |
contactFilter | Контактный фильтр, используемый для различной фильтрации результатов, например, по маске слоя и глубине Z или нормальному углу.. |
results | Массив для получения результатов. Размер массива определяет максимальное количество результатов, которые могут быть возвращены. |
Возвращает
int Возвращает количество результатов, помещенных в массив results
.
Описание
Направляет луч на коллайдеры PhysicsScene2D, возвращая все пересечения.
Raycast концептуально похож на лазерный луч, испускаемый из точки в пространстве в определенном направлении. Любой объект, соприкасающийся с лучом, может быть обнаружен и сообщен. Raycasts полезны для определения линии прямой видимости, целей, пораженных огнестрельным оружием, и для многих других целей в игровом процессе.
Эта функция возвращает любой Collider2D, пересекающий луч, с результатами, возвращаемыми в предоставленном массиве. Целочисленное возвращаемое значение — это количество объектов, пересекающих линию (возможно, ноль), но размер массива результатов не будет изменен, если он не содержит достаточного количества элементов для отчета обо всех результатах. Значение этого заключается в том, что для результатов не выделяется память, что повышает производительность сборки мусора. Обратите внимание, что вы всегда получите нулевой результат, если передадите пустой массив.
Маска layerMask может использоваться для выборочного обнаружения объектов только на определенных слоях (например, это позволяет применять обнаружение только к вражеским персонажам). Перегрузки этого метода, использующие contactFilter
, могут фильтровать результаты с помощью параметров, доступных в ContactFilter2D.
Кроме того, это также обнаружит коллайдер(ы) в начале луча. В этом случае луч начинается внутри коллайдера и не пересекает поверхность коллайдера. Это означает, что нормаль столкновения не может быть вычислена, и в этом случае возвращаемая нормаль столкновения устанавливается на обратную проверяемому вектору луча. Это легко обнаружить, поскольку такие результаты всегда имеют долю RaycastHit2D, равную нулю.
Все результаты отсортированы по возрастанию расстояния.
Смотрите так же: PhysicsScene2D, RaycastHit2D, LayerMask, Physics2D.DefaultRaycastLayers, Physics2D.IgnoreRaycastLayer, Physics2D.queriesHitTriggers & Collider2D.Raycast.
Объявление
public int Raycast(Vector2 origin, Vector2 direction, float distance, ContactFilter2D contactFilter, ListПараметры
origin | Точка в 2D-пространстве, откуда исходит луч. |
direction | Вектор, представляющий направление луча. |
distance | Максимальное расстояние, на которое можно бросить луч. |
contactFilter | Контактный фильтр, используемый для различной фильтрации результатов, например, по маске слоя и глубине Z или нормальному углу. |
results | Список для получения результатов. |
Возвращает
int Возвращает количество результатов, помещенных в список results
.
Описание
Направляет луч на объекты PhysicsScene2D Colliders, возвращая все пересечения.
Raycast концептуально похож на лазерный луч, испускаемый из точки в пространстве в определенном направлении. Любой объект, соприкасающийся с лучом, может быть обнаружен и сообщен. Raycasts полезны для определения линии прямой видимости, целей, пораженных огнестрельным оружием, и для многих других целей в игровом процессе.
Целое возвращаемое значение — это количество результатов, записанных в список results
. Список результатов будет изменен, если он не содержит достаточного количества элементов для отчета обо всех результатах. Это предотвращает выделение памяти для результатов, когда нет необходимости изменять размер списка results
, и повышает производительность сборки мусора при частом выполнении запроса.
Результаты также можно отфильтровать с помощью contactFilter
. Все результаты отсортированы по возрастанию расстояния.
Смотрите так же: PhysicsScene2D and RaycastHit2D.