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

Physics2D.BoxCast

建议修改

成功!

感谢您帮助我们改进 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个建议修改,并在适用情况下进行更新。

关闭

提交失败

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

关闭

取消

声明

public static RaycastHit2D BoxCast(Vector2 origin, Vector2 size, float angle, Vector2 direction, float distance = Mathf.Infinity, int layerMask = Physics2D.AllLayers, float minDepth = -Mathf.Infinity, float maxDepth = Mathf.Infinity);

参数

origin 盒子在二维空间中的起始点。
size 盒子的尺寸。
angle 盒子的角度(以度为单位)。
direction 表示盒子方向的向量。
distance 投射盒子的最大距离。
layerMask 仅检测某些层上的碰撞器。
minDepth 仅包含 Z 坐标(深度)大于或等于此值的物体。
maxDepth 仅包含 Z 坐标(深度)小于或等于此值的物体。

返回值

RaycastHit2D 返回的投射结果。

描述

将一个盒子投射到场景中的碰撞器上,返回与它接触的第一个碰撞器。

BoxCast 从概念上来说就像在场景中沿着特定方向拖动一个盒子。任何与盒子接触的物体都可以被检测到并报告。

此函数返回一个 RaycastHit2D 对象,其中包含对被盒子击中的碰撞器的引用(如果什么也没有击中,则结果的 Collider 属性将为 NULL)。layerMask 可以用于选择性地仅检测某些层上的物体(例如,这允许您仅对敌方角色应用检测)。

返回的 RaycastHit2D 返回接触点和法线,以及盒子接触该点时的质心位置。

BoxCast 具有一个 size 选项。这定义了盒子的大小。盒子被发射穿过世界。盒子越大,被击中的游戏对象就越多。

BoxCast 还具有一个 angle 选项。发射穿过游戏元素的盒子可以旋转。这意味着 BoxCast 与游戏对象的碰撞可能更难观察。

The BoxCast.direction variable determines how the Box moves in the Game. This is a 2D variable controlling the horizontal and vertical directions.

Distance controls how far from the origin the Box travels. It may interact with many Colliders or none. In these cases the closest Collider2D provides the values set in the RaycastHit2D variable. If no Collider2D is hit then NULL is returned.

其他资源: LayerMask 类,RaycastHit2D 类,BoxCastAllBoxCastNonAllocDefaultRaycastLayersIgnoreRaycastLayerraycastsHitTriggers.


声明

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

参数

origin 盒子在二维空间中的起始点。
size 盒子的尺寸。
angle 盒子的角度(以度为单位)。
direction 表示盒子方向的向量。
distance 投射盒子的最大距离。
results 接收结果的数组。数组的大小决定了可以返回的最大结果数。
contactFilter 用于以不同方式筛选结果的接触过滤器,例如通过层蒙版、Z 深度或法线角度。

返回值

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

描述

将一个盒子投射到场景中的碰撞器上,并返回与它接触的所有碰撞器。

此函数返回找到的接触数,并将这些接触放置在 results 数组中。结果也可以通过 contactFilter 筛选。

其他资源: ContactFilter2DRaycastHit2D.


声明

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

参数

origin 盒子在二维空间中的起始点。
size 盒子的尺寸。
angle 盒子的角度(以度为单位)。
direction 表示盒子方向的向量。
contactFilter 用于以不同方式筛选结果的接触过滤器,例如通过层蒙版、Z 深度或法线角度。
results 接收结果的列表。
distance 投射盒子的最大距离。

返回值

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

描述

将一个盒子投射到场景中的碰撞器上,并返回与它接触的所有碰撞器。

整数返回值是写入 results 列表中的结果数。如果结果列表不包含足够的结果元素,则结果列表将被调整大小。这可以防止在结果列表不需要调整大小的情况下为结果分配内存,并在频繁执行查询时提高垃圾回收性能。

结果也可以通过 contactFilter 筛选。

其他资源: ContactFilter2DRaycastHit2D.