Version: 2021.3
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 盒体在 2D 空间中的起点。
size 盒体的大小。
angle 盒体的角度(以度为单位)。
direction 表示盒体方向的矢量。
distance 盒体的最大投射距离。
layerMask 过滤器,用于仅在特定层上检测碰撞体。
minDepth 仅包括 Z 坐标(深度)大于或等于该值的对象。
maxDepth 仅包括 Z 坐标(深度)小于或等于该值的对象。

返回

RaycastHit2D 返回的投射数量。

描述

Casts a box against Colliders in the Scene, returning the first Collider to contact with it.

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

This function returns a RaycastHit2D object with a reference to the Collider that is hit by the box (the Collider property of the result will be NULL if nothing was hit). The layerMask can be used to detect objects selectively only on certain layers (this allows you to apply the detection only to enemy characters, for example).

The returned RaycastHit2D returns both the point and normal of the contact where the box would touch the Collider. It also returns the centroid where the box would be positioned for it to contact at that point.

BoxCast 有一个 size 选项。该选项定义了盒体的大小。发射的盒体 将穿过世界。盒体越大,命中的 GameObject 越多。

BoxCast 还有一个 angle 选项。发射的穿过游戏中元素的盒体 可以旋转。这意味着,可能很难观察到 BoxCast 与 GameObject 之间的碰撞。

BoxCast.direction 变量用于确定盒体在游戏中的移动方式。这是一个控制水平和垂直方向的 2D 变量。

Distance 控制盒体从 origin 开始行进的距离。它可能会与 多个或 0 个 Collider 进行交互。在这些情况下,最接近的 Collider2D 提供 在 RaycastHit2D 变量中设置的值。如果未命中任何 Collider2D,则返回 NULL。

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


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

参数

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

返回

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

描述

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

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

该函数返回找到的接触点数,并将这些接触点放入 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 盒体在 2D 空间中的起点。
size 盒体的大小。
angle 盒体的角度(以度为单位)。
direction 表示盒体方向的矢量。
contactFilter 接触筛选器,用于以不同方式筛选结果,例如按层遮罩、Z 深度或法线角度。
results 用于接收结果的列表。
distance 盒体的最大投射距离。

返回

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

描述

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

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

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

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

另请参阅:ContactFilter2DRaycastHit2D