Version: 2022.2
public RaycastHit2D CapsuleCast (Vector2 origin, Vector2 size, CapsuleDirection2D capsuleDirection, float angle, Vector2 direction, float distance, int layerMask= Physics2D.DefaultRaycastLayers);
public RaycastHit2D CapsuleCast (Vector2 origin, Vector2 size, CapsuleDirection2D capsuleDirection, float angle, Vector2 direction, float distance, ContactFilter2D contactFilter);

参数

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

返回

RaycastHit2D 返回的投射数量。

描述

向 PhysicsScene2D 中的碰撞体投射胶囊体,仅返回第一个交点。

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

此函数返回一个 RaycastHit2D 对象,该对象引用了胶囊体命中的碰撞体(如果未命中任何对象,则结果的碰撞体属性将为 NULL);并包含胶囊体与碰撞体之间接触的点和法线。此外,还返回当胶囊体在该点处接触碰撞体时盒体的质心。

layerMask 可用于仅在特定层上有选择地检测对象(例如,这让您能够仅将检测应用于敌人角色)。使用 contactFilter 的此方法重载可以按 ContactFilter2D 中提供的选项筛选结果。

另请参阅:PhysicsScene2DRaycastHit2DLayerMaskPhysics2D.DefaultRaycastLayersPhysics2D.IgnoreRaycastLayerPhysics2D.queriesHitTriggers


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

参数

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

返回

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

描述

向 PhysicsScene2D 中的碰撞体投射胶囊体,返回所有交点。

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

此函数返回一个 RaycastHit2D 对象数组,其中的对象引用了胶囊体命中的碰撞体(如果未命中任何对象,则结果的碰撞体属性将为 NULL);并包含胶囊体与碰撞体之间接触的点和法线。此外,还返回当胶囊体在该点处接触碰撞体时盒体的质心。

整数返回值为与该胶囊体交叠的对象数(可能为零),但如果结果数组中没有足够的元素来报告所有这些结果,则不会调整该数组的大小。其意义在于不为这些结果分配内存,因此会提高垃圾收集性能。请注意,如果传递空数组,则始终会得到零结果。

layerMask 可用于仅在特定层上有选择地检测对象(例如,这让您能够仅将检测应用于敌人角色)。使用 contactFilter 的此方法重载可以按 ContactFilter2D 中提供的选项筛选结果。

所有结果按距离升序排序。

另请参阅:PhysicsScene2DRaycastHit2DLayerMaskPhysics2D.DefaultRaycastLayersPhysics2D.IgnoreRaycastLayerPhysics2D.queriesHitTriggers


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

参数

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

返回

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

描述

向 PhysicsScene2D 中的碰撞体投射胶囊体,返回所有交点。

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

整数返回值为与该胶囊体交叠的对象数(可能为零),但如果结果数组中没有足够的元素来报告所有这些结果,则不会调整该数组的大小。这可在 results 列表无需调整大小时防止为结果分配内存,可在经常执行查询时提高垃圾收集性能。

也可以通过 contactFilter 对结果进行筛选。所有结果按距离升序排序。

另请参阅:PhysicsScene2DRaycastHit2D