BoxCollider2D bounds.Contain(somePoint)的工作方式与预期不符

时间:2016-02-12 10:49:54

标签: c# unity3d unity5 unity3d-2dtools

我对BoxCollider2D有点问题。当我这样做时:

bool someBool = someBounds.Contains(somePoint);

当身体没有如图1所示的旋转时,我得到预期的结果。(红色区域是somePoint使someBool成立的地方) 当身体旋转时,somePoint会在红色区域内的任何地方都生成一些真实的图片(图片2)。我不想要这种行为。我希望点在绿色区域内返回true(图3)。

Image

1 个答案:

答案 0 :(得分:2)

要实现目标,请使用BoxCollider2D.OverlapPoint,如下所示:

bool overlaps = myBoxCollider2D.OverlapPoint (somePoint);

bounds的{​​{1}}假设该对象是AABB - "轴对齐的边界框",这意味着它没有旋转并且像图1中那样对齐。所以,你的照片1和2确实证明了这一点。

来源:如果您转到BoxCollider2D文档,请单击Bounds,然后单击Bounds类,您将看到界限所指的详细信息。