public static RaycastHit2D CapsuleCast (Vector2 origin, Vector2 size, CapsuleDirection2D capsuleDirection, float angle, Vector2 direction, float distance= Mathf.Infinity, int layerMask= DefaultRaycastLayers, float minDepth= -Mathf.Infinity, float maxDepth= Mathf.Infinity);

参数

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

返回

RaycastHit2D 返回的投射数量。

描述

向场景中的碰撞体投射胶囊体,返回与胶囊体接触的第一个碰撞体。

从概念上说,CapsuleCast 就像朝特定方向拖动一个胶囊体穿过场景一样。在该过程中,可以检测并报告与胶囊体接触的任何对象。

函数返回一个 RaycastHit2D 对象,该对象引用了胶囊体命中的碰撞体(如果未命中任何对象,则结果的碰撞体属性将为 NULL)。layerMask 可用于仅在特定层上有选择地检测对象(例如,这让您能够仅将检测应用于敌人角色)。

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

另请参阅:LayerMask 类、RaycastHit2D 类、CapsuleCastAllCapsuleCastNonAllocDefaultRaycastLayersIgnoreRaycastLayerraycastsHitTriggers


public static int CapsuleCast (Vector2 origin, Vector2 size, CapsuleDirection2D capsuleDirection, float angle, Vector2 direction, ContactFilter2D contactFilter, RaycastHit2D[] results, float distance= Mathf.Infinity);

参数

origin胶囊体在 2D 空间中的起点。
size胶囊体的大小。
capsuleDirection胶囊体的方向。
angle胶囊体的角度(以度为单位)。
direction表示胶囊体投射方向的向量。
contactFilter接触筛选器,用于以不同方式筛选结果,例如按层遮罩、Z 深度或法线角度。
results用于接收结果的数组。该数组的大小决定可返回的结果的最大数量。
distance将胶囊体投射的最大距离。

返回

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

描述

向场景中的碰撞体投射胶囊体,并返回与胶囊体接触的所有碰撞体。

从概念上说,CapsuleCast 就像朝特定方向拖动一个胶囊体穿过场景一样。在该过程中,可以检测并报告与胶囊体接触的任何对象。

该函数返回找到的接触点数,并将这些接触点放入 results 数组。也可以通过 contactFilter 对结果进行过滤。

另请参阅:ContactFilter2DRaycastHit2D


public static int CapsuleCast (Vector2 origin, Vector2 size, CapsuleDirection2D capsuleDirection, float angle, Vector2 direction, ContactFilter2D contactFilter, List<RaycastHit2D> results, float distance= Mathf.Infinity);

参数

origin胶囊体在 2D 空间中的起点。
size胶囊体的大小。
capsuleDirection胶囊体的方向。
angle胶囊体的角度(以度为单位)。
direction表示胶囊体投射方向的矢量。
contactFilter接触筛选器,用于以不同方式筛选结果,例如按层遮罩、Z 深度或法线角度。
results用于接收结果的列表。
distance将胶囊体投射的最大距离。

返回

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

描述

向场景中的碰撞体投射胶囊体,并返回与胶囊体接触的所有碰撞体。

从概念上说,CapsuleCast 就像朝特定方向拖动一个胶囊体穿过场景一样。在该过程中,可以检测并报告与胶囊体接触的任何碰撞体。

该整数返回值是写入到 results 列表中的结果数。如果结果列表中没有足够的元素来报告所有这些结果,则会调整列表的大小。这可在 results 列表无需调整大小时防止为结果分配内存,可在经常执行查询时提高垃圾收集性能。

也可以通过 contactFilter 对结果进行筛选。

另请参阅:ContactFilter2DRaycastHit2D