Version: 2017.3
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 角的对角。
results 用于接收结果的数组。该数组的大小决定可返回的结果的最大数量。
contactFilter 接触筛选器,用于以不同方式筛选结果,例如按层遮罩、Z 深度。注意,法线角度不用于重叠测试。

返回

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

描述

检查某碰撞体是否位于一个矩形区域内。

矩形由世界空间中的两个对角坐标定义。您可以将这两个对角坐标想象为左上角和右下角,但即使点的顺序相反,测试仍然有效。

该函数返回找到的碰撞体数,并将这些碰撞体放入 results 数组。也可以通过 contactFilter 对结果进行过滤。注意,按法线角筛选不适用于重叠函数。