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

Physics2D.OverlapBox

建议修改

成功!

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

关闭

提交失败

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

关闭

取消

声明

public static Collider2D OverlapBox(Vector2 point, Vector2 size, float angle, int layerMask = DefaultRaycastLayers, float minDepth = -Mathf.Infinity, float maxDepth = Mathf.Infinity);

参数

point 盒子的中心点。
size 盒子的尺寸。
angle 盒子的角度。
layerMask 过滤器,仅检查特定图层上的对象。
minDepth 仅包含 Z 坐标(深度)大于此值的物体。
maxDepth 仅包含 Z 坐标(深度)小于此值的物体。

返回值

Collider2D 与盒子重叠的碰撞体。

描述

检查碰撞体是否落在盒子区域内。

盒子由其在世界空间中的中心坐标及其尺寸定义。可选的 layerMask 允许测试仅检查特定图层上的对象。

尽管 Z 轴与 2D 中的渲染或碰撞无关,但您可以使用 minDepthmaxDepth 参数根据其 Z 坐标过滤对象。如果多个碰撞体落在盒子内,则返回的碰撞体将是 Z 坐标值最小的那个。如果没有碰撞体在盒子内,则返回 Null。

其他资源:OverlapBoxAllOverlapBoxNonAlloc


声明

public static int OverlapBox(Vector2 point, Vector2 size, float angle, ContactFilter2D contactFilter, Collider2D[] results);

参数

point 盒子的中心点。
size 盒子的尺寸。
angle 盒子的角度。
contactFilter 用于以不同方式过滤结果的接触过滤器,例如按图层蒙版、Z 深度。请注意,法线角度不用于重叠测试。
results 用于接收结果的数组。数组的大小决定了可以返回的结果最大数量。

返回值

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

描述

检查碰撞体是否落在盒子区域内。

此函数返回找到的碰撞体数量,并将这些碰撞体放置在 results 数组中。


声明

public static int OverlapBox(Vector2 point, Vector2 size, float angle, ContactFilter2D contactFilter, List<Collider2D> results);

参数

point 盒子的中心点。
size 盒子的尺寸。
angle 盒子的角度。
contactFilter 用于以不同方式过滤结果的接触过滤器,例如按图层蒙版、Z 深度。请注意,法线角度不用于重叠测试。
results 用于接收结果的列表。

返回值

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

描述

检查碰撞体是否落在盒子区域内。

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