Version: 2017.3

Physics2D.GetRayIntersectionNonAlloc

切换到手册
public static int GetRayIntersectionNonAlloc (Ray ray, RaycastHit2D[] results, float distance= Mathf.Infinity, int layerMask= DefaultRaycastLayers);

参数

ray 定义要测试的原点和方向的 3D 射线。
distance 光线的最大投射距离。
layerMask 过滤器,用于仅在特定层上检测碰撞体。
results 用于接收结果的数组。

返回

int 返回的结果数量。

描述

向场景中的碰撞体投射 3D 射线,返回射线路径上的碰撞体。

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

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

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