Physics2D.GetRayIntersectionNonAlloc

Switch to Manual
public static int GetRayIntersectionNonAlloc (Ray ray, RaycastHit2D[] results, float distance= Mathf.Infinity, int layerMask= DefaultRaycastLayers);

Parameters

ray定义要测试的原点和方向的 3D 射线。
distanceThe maximum distance over which to cast the ray.
layerMask过滤器,用于仅在特定层上检测碰撞体。
results用于接收结果的数组。

Returns

int 返回的结果数量。

Description

Cast a 3D ray against the colliders in the Scene returning the colliders along the ray.

对于查找与任意 3D 射线相交的碰撞体来说,这很有用。

此函数类似于 GetRayIntersectionAll 函数,不同之处在于其结果会返回到提供的数组中。整数返回值是与该光线交叠的对象数(可能为零),但如果结果数组中没有足够的元素来报告所有这些结果,则不会调整该数组的大小。其意义在于不为这些结果分配内存,因此在频繁进行此类调用时会提高垃圾回收性能。在返回的数组中,碰撞体按照距离射线起点的距离顺序放置。

此外,该函数是一种 3D 交叉测试,因此 RaycastHit2D 中返回的任何碰撞法线都将为零。