Version: 2020.1
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