返回介绍

Physics2D.GetRayIntersectionNonAlloc 获取射线交点不分配内存

发布于 2019-12-18 15:38:17 字数 3223 浏览 1560 评论 0 收藏 0

JavaScript => static function GetRayIntersectionNonAlloc(ray: Ray, results: RaycastHit2D[], distance: float = Mathf.Infinity, layerMask: int = DefaultRaycastLayers): int;
C# => static int GetRayIntersectionNonAlloc(Ray ray, RaycastHit2D[] results, float distance = Mathf.Infinity, int layerMask = DefaultRaycastLayers);

Parameters 参数

rayThe 3D ray defining origin and direction to test.
定义起源和方向进行测试的一条3D射线。
distanceMaximum distance over which to cast the ray.
射线的最大距离。
layerMaskFilter to detect colliders only on certain layers.
只在某些层检测碰撞器。
resultsArray to receive results.
接收结果的数组。

Returns 返回值

int The number of results returned.
int 返回结果的数量。

Description 描述

Cast a 3D ray against the colliders in the scene returning the colliders along the ray.
对场景内的碰撞器们投射一条3D射线,沿着射线返回所有接触到的碰撞器。

This is useful for finding colliders intersecting an arbitrary 3D ray. 这是对于找出一个碰撞器是非常有用的,用一条任意的3D射线去交叉(碰撞器)。

This function is similar to the GetRayIntersectionAll function except that the results are returned in the supplied array. The integer return value is the number of objects that intersect the ray (possibly zero) but the results array will not be resized if it doesn't contain enough elements to report all the results. The significance of this is that no memory is allocated for the results and so garbage collection performance is improved when such calls are performed frequently. The colliders will be placed in the returned array in order of distance from the start of the ray.
这个函数与GetRayIntersectionAll函数很像,区别在于他把返回结果放到一个事先准备好的数组内。整形的返回值(可能为零)就是射线贯穿的对象的数量,但是结果数组将不会重新调整大小即使他没有足够的元素装下所有的结果(碰撞器)。他的意义在于整个过程中不会为结果重新分配内存,使垃圾回收的频率降低从而提高了性能。数组内的碰撞器根据他和射线的起点之间的距离排序。

Note that this function will allocate memory for the returned RaycastHit2D array. You can use GetRayIntersectionNonAlloc to avoid this overhead if you need to make such calls frequently.
注意,这个函数将分配内存给返回的RaycastHit2D数组。如果你需要经常要调用这种功能,你可以使用GetRayIntersectionNonAlloc函数去避免这种(内存)开销。
(应该是官方从GetRayIntersection复制过来的这句话忘记删了 — karsion 2014/06/12 23:05

Additionally this function is a 3D intersection test therefore any collision normals returned in the RaycastHit2D will be zero.
另外,这个函数是一个3D的相交测试因此任何在RaycastHit2D中返回的碰撞法线值将会是零。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文