Объявление
public static int GetRayIntersectionNonAlloc(Ray ray, RaycastHit2D[] results, float distance = Mathf.Infinity, int layerMask = DefaultRaycastLayers);Параметры
ray | Трехмерный луч, определяющий исходную точку и направление для проверки. |
distance | Максимальное расстояние, на которое может быть направлен луч. |
layerMask | Фильтр для обнаружения коллайдеров только на определенных слоях. |
results | Массив для получения результатов. |
Возвращает
int Количество возвращенных результатов.
Описание
Направьте 3D-луч на коллайдеры в сцене, возвращая коллайдеры вдоль луча. Примечание. Этот метод будет объявлен устаревшим в будущих сборках, и вместо него рекомендуется использовать GetRayIntersection.
Это полезно для поиска коллайдеров, пересекающих произвольный 3D-луч.
Эта функция аналогична функции GetRayIntersectionAll, за исключением того, что результаты возвращаются в предоставленном массиве. Целочисленное возвращаемое значение — это количество объектов, пересекающих луч (возможно, ноль), но размер массива результатов не будет изменен, если он не содержит достаточного количества элементов для отчета обо всех результатах. Значение этого заключается в том, что для результатов не выделяется память, поэтому производительность сборки мусора повышается при частом выполнении таких вызовов. Коллайдеры будут размещены в возвращаемом массиве в порядке удаления от начала луча.
Кроме того, эта функция является проверкой трехмерного пересечения, поэтому любые нормали столкновений, возвращаемые в RaycastHit2D, будут равны нулю.