Version: 2020.1

Physics2D.CapsuleCastNonAlloc

切换到手册
public static int CapsuleCastNonAlloc (Vector2 origin, Vector2 size, CapsuleDirection2D capsuleDirection, float angle, Vector2 direction, RaycastHit2D[] results, float distance= Mathf.Infinity, int layerMask= DefaultRaycastLayers, float minDepth= -Mathf.Infinity, float maxDepth= Mathf.Infinity);

参数

origin 胶囊体在 2D 空间中的起点。
size 胶囊体的大小。
capsuleDirection 胶囊体的方向。
angle 胶囊体的角度(以度为单位)。
direction 表示胶囊体投射方向的向量。
results 用于接收结果的数组。
distance 将胶囊体投射的最大距离。
layerMask 过滤器,用于仅在特定层上检测碰撞体。
minDepth 仅包括 Z 坐标(深度)大于该值的对象。
maxDepth 仅包括 Z 坐标(深度)小于该值的对象。

返回

int 返回放置在 results 数组中的结果数。

描述

向场景中投射一个胶囊体,将与胶囊体接触的碰撞体返回到提供的结果数组中。

此函数类似于 CapsuleCastAll 函数,不同之处在于其结果会返回到提供的数组中。整数返回值是与该胶囊体交叠的对象数(可能为零),但如果结果数组中没有足够的元素来报告所有这些结果,则不会调整该数组的大小。其意义在于不为这些结果分配内存,因此在经常执行时会提高垃圾回收性能。

返回的 RaycastHit2D 将返回胶囊体将与碰撞体接触的点和法线。此外,它还返回当胶囊体接触该点时胶囊体的质心。

另请参阅:ContactFilter2DLayerMask 类、RaycastHit2D 类、CapsuleCastCapsuleCastAllDefaultRaycastLayersIgnoreRaycastLayerraycastsHitTriggers