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

Physics2D.Linecast

Объявление

public static RaycastHit2D Linecast(Vector2 start, Vector2 end, int layerMask = DefaultRaycastLayers, float minDepth = -Mathf.Infinity, float maxDepth = Mathf.Infinity);

Параметры

start Начальная точка линии в мировом пространстве.
end Конечная точка линии в мировом пространстве.
layerMask Фильтр для обнаружения коллайдеров только на определенных слоях.
minDepth Включайте только объекты с координатой Z (глубиной) больше или равной этому значению.
maxDepth Включайте только объекты с координатой Z (глубиной) меньше или равной этому значению.

Возвращает

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

Описание

Отбрасывает отрезок линии на коллайдеры в сцене.

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

Эта функция возвращает объект RaycastHit2D, когда линия касается коллайдера в сцене. Маска layerMask может использоваться для выборочного обнаружения объектов только на определенных слоях (например, это позволяет применять обнаружение только к вражеским персонажам). Предполагается, что направление линии простирается от начальной точки до конечной точки. Будет сообщено только о первом обнаруженном коллайдере в этом направлении. Хотя ось Z не имеет отношения к рендерингу или коллизиям в 2D, вы можете использовать параметры minDepth и maxDepth для фильтрации объектов по их координате Z.

Линейные трансляции полезны для определения линий прямой видимости, целей, пораженных огнестрельным оружием, и для многих других целей в игровом процессе.

Обратите внимание, что эта функция выделит память для возвращенного объекта RaycastHit2D. Вы можете использовать LinecastNonAlloc, чтобы избежать этих накладных расходов, если вам нужно часто делать прямые трансляции.

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

Смотрите так же: LayerMask class, RaycastHit2D class, LinecastAll, LinecastNonAlloc, DefaultRaycastLayers, IgnoreRaycastLayer, raycastsHitTriggers.


Объявление

public static int Linecast(Vector2 start, Vector2 end, ContactFilter2D contactFilter, RaycastHit2D[] results);

Параметры

start Начальная точка линии в мировом пространстве.
end Конечная точка линии в мировом пространстве.
contactFilter Контактный фильтр, используемый для различной фильтрации результатов, например, по маске слоя, глубине Z или нормальному углу..
results Массив для получения результатов. Размер массива определяет максимальное количество результатов, которые могут быть возвращены.

Возвращает

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

Описание

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

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

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

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


Объявление

public static int Linecast(Vector2 start, Vector2 end, ContactFilter2D contactFilter, List results);

Параметры

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

Возвращает

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

Описание

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

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

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

Результаты также можно отфильтровать с помощью contactFilter.

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

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