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

PhysicsScene2D.Linecast

Declaration

public RaycastHit2D Linecast(Vector2 start, Vector2 end, int layerMask = Physics2D.DefaultRaycastLayers);
public RaycastHit2D Linecast(Vector2 start, Vector2 end, ContactFilter2D contactFilter);

Параметры

Параметр Описание
начало Начальная точка линии в мировом пространстве.
конец Конечная точка линии в мировом пространстве.
layerMask Фильтр используется для обнаружения коллайдеров только на определенных слоях.
contactFilter Контактный фильтр используется для фильтрации результатов по-разному, например, по маске слоя, глубине Z или нормальному углу.

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

RaycastHit2D Возвращаются результаты отливки.

Описание

Отображает сегмент линии на коллайдерах в PhysicsScene2D, возвращая только первое пересечение.

Трассировка отрезка — это воображаемая линия между двумя точками в мировом пространстве. Любой Collider2D, соприкасающийся с этой линией, можно обнаружить и получить сведения о нём. В отличие от схожей трассировки лучом, при трассировке лучом линия задаётся начальной точкой, направлением и расстоянием. Трассировка отрезка полезна для определения прямой видимости, целей, поражённых выстрелами, и во многих других игровых задачах.

Эта функция возвращает объект RaycastHit2D, когда линия соприкасается с Collider2D в сцене. Считается, что линия направлена от начальной точки к конечной. Возвращаются сведения только о первом коллайдере, встреченном в этом направлении.

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

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

ПРИМЕЧАНИЕ: Все результаты сортируются по возрастанию расстояния, то есть первый результат является ближайшим.

Дополнительные ресурсы: PhysicsScene2D, RaycastHit2D, LayerMask, Physics2D.DefaultRaycastLayers, Physics2D.IgnoreRaycastLayer, Physics2D.queriesHitTriggers.

Declaration

public int Linecast(Vector2 start, Vector2 end, RaycastHit2D[] results, int layerMask = Physics2D.DefaultRaycastLayers);
public int Linecast(Vector2 start, Vector2 end, ContactFilter2D contactFilter, RaycastHit2D[] results);

Параметры

Параметр Описание
начало Начальная точка линии в мировом пространстве.
конец Конечная точка линии в мировом пространстве.
результаты Массив для получения результатов. Размер массива определяет максимальное количество результатов, которые могут быть возвращены.
layerMask Фильтр используется для обнаружения коллайдеров только на определенных слоях.
contactFilter Контактный фильтр используется для фильтрации результатов по-разному, например, по маске слоя, глубине Z или нормальному углу.

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

инт Возвращает число результатов, помещенных в массив results.

Описание

Отображает сегмент линии против коллайдеров в PhysicsScene2D.

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

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

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

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

ПРИМЕЧАНИЕ. Все результаты отсортированы по возрастанию расстояния, то есть первым идёт ближайший результат.

Дополнительные ресурсы: PhysicsScene2D, RaycastHit2D, LayerMask, Physics2D.DefaultRaycastLayers, Physics2D.IgnoreRaycastLayer, Physics2D.queriesHitTriggers.

Declaration

public int Linecast(Vector2 start, Vector2 end, ContactFilter2D contactFilter, List<RaycastHit2D> results);

Параметры

Параметр Описание
начало Начальная точка линии в мировом пространстве.
конец Конечная точка линии в мировом пространстве.
contactFilter Контактный фильтр используется для фильтрации результатов по-разному, например, по маске слоя, глубине Z или нормальному углу.
результаты Список для получения результатов.

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

инт Возвращает число результатов, помещенных в список results.

Описание

Запускает сегмент линии против коллайдеров в PhysicsScene2D.

лайнкаст представляет собой воображаемую линию между двумя точками в мировом пространстве. Любой Collider2D, контактирующий с этой линией, может быть обнаружен и сообщен. Это отличается от аналогичного рейкаст в том, что raycasting определяет линию с помощью источника, направления и расстояния. Linecasts полезны для определения линии обзора, целей, попадающих под огонь, и для многих других целей в игре.

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

Результаты также могут быть отфильтрованы по contactFilter. Все результаты сортируются в порядке возрастания расстояния.

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

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

Дополнительные ресурсы: PhysicsScene2D, RaycastHit2D, LayerMask, Physics2D.DefaultRaycastLayers, Physics2D.IgnoreRaycastLayer, Physics2D.queriesHitTriggers.