版本: Unity 6 (6000.0)
语言英语
  • C#

Physics2D.CapsuleCast

建议修改

成功!

感谢您帮助我们改进 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提出的每项修改建议,并在适用时进行更新。

关闭

提交失败

由于某些原因,您的修改建议无法提交。请在几分钟后<a>重试</a>。感谢您抽出时间帮助我们改进 Unity 文档的质量。

关闭

取消

声明

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 对象,其中包含对胶囊击中的碰撞器的引用(如果未击中任何物体,结果的 Collider 属性将为 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 数组中的结果数量。

描述

将胶囊投射到场景中的碰撞器上,并返回与之接触的所有碰撞器。

此函数返回找到的接触数量,并将这些接触放置在 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 列表中的结果数量。

描述

将胶囊投射到场景中的碰撞器上,并返回与之接触的所有碰撞器。

整数返回值是写入 results 列表中的结果数量。如果结果列表中没有足够的元素来报告所有结果,它将被调整大小。这可以防止为结果分配内存,而 results 列表无需调整大小,并且在频繁执行查询时提高垃圾回收性能。

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

其他资源:ContactFilter2DRaycastHit2D.