Объявление
public static int LinecastNonAlloc(Vector2 start, Vector2 end, RaycastHit2D[] results, int layerMask = DefaultRaycastLayers, float minDepth = -Mathf.Infinity, float maxDepth = Mathf.Infinity);Параметры
minDepth | Включайте только объекты с координатой Z (глубиной) больше или равной этому значению. |
maxDepth | Включайте только объекты с координатой Z (глубиной) меньше или равной этому значению. |
start | Начальная точка линии в мировом пространстве. |
end | Конечная точка линии в мировом пространстве. |
results | Возвращаемый массив объектов, пересекающих линию. |
layerMask | Фильтр для обнаружения коллайдеров только на определенных слоях. |
Возвращает
int Возвращает количество результатов, помещенных в массив results
.
Описание
Проводит линию против коллайдеров в сцене. Примечание. Этот метод будет объявлен устаревшим в будущих сборках, вместо него рекомендуется использовать Linecast.
linecast — это воображаемая линия между двумя точками в мировом пространстве. Любой объект, соприкасающийся с лучом, может быть обнаружен и сообщен. Это отличается от аналогичного raycast тем, что raycast задает линию, используя начало координат и направление.
Эта функция аналогична функции LinecastAll, за исключением того, что результаты возвращаются в предоставленном массиве. Целочисленное возвращаемое значение — это количество объектов, пересекающих линию (возможно, ноль), но размер массива результатов не будет изменен, если он не содержит достаточного количества элементов для отчета обо всех результатах. Значение этого заключается в том, что для результатов не выделяется память, поэтому производительность сборки мусора повышается при частом выполнении линейных трансляций. Предполагается, что линия проходит от начальной до конечной точки; Коллайдеры будут размещены в возвращаемом массиве в порядке удаления от начала строки.
Кроме того, это также обнаружит коллайдер(ы) в начале строки. В этом случае линия начинается внутри коллайдера и не пересекает поверхность коллайдера. Это означает, что нормаль столкновения не может быть вычислена, и в этом случае возвращаемая нормаль столкновения устанавливается на обратную проверяемому вектору линии. Это легко обнаружить, поскольку такие результаты всегда имеют долю RaycastHit2D, равную нулю.
Смотрите так же: LayerMask class, RaycastHit2D class, Linecast, LinecastAll, DefaultRaycastLayers, IgnoreRaycastLayer, raycastsHitTriggers.