Version: 2022.3

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 数组中的结果数。

描述

Casts a capsule into the Scene, returning Colliders that contact with it into the provided results array. Note: This method will be deprecated in a future build and it is recommended to use CapsuleCast instead.

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

The returned RaycastHit2D returns both the point and normal of the contact where the capsule would touch the Collider. It also returns the centroid where the capsule would be positioned for it to contact at that point.

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