版本:Unity 6 (6000.0)
语言中文(简体)
  • C#

Physics2D.OverlapArea

提出修改建议

成功!

感谢帮助我们提升 Unity 文档质量。尽管我们无法接受所有提交,但我们会阅读用户提出的每条修改建议,并适当地进行更新。

关闭

提交失败

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

关闭

取消

声明

public static Collider2D OverlapArea(Vector2 pointA, Vector2 pointB, int layerMask = DefaultRaycastLayers, float minDepth = -Mathf.Infinity, float maxDepth = Mathf.Infinity);

参数

pointA 矩形的其中一个角。
pointB 矩形中点 A 的对角角。
layerMask 筛选器,用于仅检查特定图层上的对象。
minDepth 仅包括 Z 坐标(深度)大于或等于此值的物体。
maxDepth 仅包括 Z 坐标(深度)小于或等于此值的物体。

返回

Collider2D 与该区域重叠的碰撞器。

说明

检查碰撞器是否落在矩形区域内。

矩形由世界空间中的两个对角角坐标定义。可以将它们视作左上角和右下角,但即便颠倒点顺序,此项测试也仍然有效。可选的 layerMask 允许测试仅检查特定图层上的对象。

尽管 Z 轴与 2D 渲染或碰撞无关,但可以使用 minDepthmaxDepth 参数基于其 Z 坐标筛选对象。如果有两个以上碰撞器落入该区域,则返回的碰撞器将是 Z 坐标值最低的碰撞器。如果该区域没有碰撞器,则返回 Null。

其他资源:OverlapAreaAllOverlapAreaNonAlloc


声明

public static int OverlapArea(Vector2 pointA, Vector2 pointB, ContactFilter2D contactFilter, Collider2D[] results);

参数

pointA 矩形的其中一个角。
pointB 矩形中点 A 的对角角。
contactFilter 用于以不同方式(例如按层蒙版、Z 深度)筛选结果的接触过滤器。请注意,法线角度不用于重叠测试。
results 接收结果的数组。该数组的大小决定了可返回结果的最大数量。

返回

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

说明

检查碰撞器是否落在矩形区域内。

此函数返回找到的 Collider 的数量,并将其置于 results 数组中。


声明

public static int OverlapArea(Vector2 pointA, Vector2 pointB, ContactFilter2D contactFilter, List<Collider2D> results);

参数

pointA 矩形的其中一个角。
pointB 矩形中点 A 的对角角。
contactFilter 用于以不同方式(例如按层蒙版、Z 深度)筛选结果的接触过滤器。请注意,法线角度不用于重叠测试。
results 接收结果的列表。

返回

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

说明

检查碰撞器是否落在矩形区域内。

整数返回值是写入 results 列表的结果数。如果 results 列表不包含报告所有结果的足够元素,则会调整列表大小。 dies prevents memory from being allocated for results when the results list does not need to be resized, and improves garbage collection performance when the query is performed frequently.