BoxCollider2D bounds.Contain(somePoint) 未按预期工作
BoxCollider2D bounds.Contain(somePoint) works not as expected
我 BoxCollider2D
有点问题。当我这样做时:
bool someBool = someBounds.Contains(somePoint);
当 body 没有旋转时,我得到了预期的结果,如图 1 所示。(红色区域是 somePoint 使 someBool 为真的地方)
当 body 旋转时,somePoint 在红色区域内的任何地方都使 someBool 为真(图 2)。我不想要这种行为。我想指向绿色区域内的 return true(图 3)。
要实现您的目标,请像这样使用 BoxCollider2D.OverlapPoint
:
bool overlaps = myBoxCollider2D.OverlapPoint (somePoint);
BoxCollider2D
的 bounds
假设对象是 AABB - "axis-aligned bounding box",这意味着它没有像图 1 那样旋转和对齐。所以,真的是你的图片1和2证明了这一点。
来源:如果您转到 BoxCollider2D documentation, click on Bounds, then click on the Bounds class,您将看到边界所指内容的详细信息。
我 BoxCollider2D
有点问题。当我这样做时:
bool someBool = someBounds.Contains(somePoint);
当 body 没有旋转时,我得到了预期的结果,如图 1 所示。(红色区域是 somePoint 使 someBool 为真的地方) 当 body 旋转时,somePoint 在红色区域内的任何地方都使 someBool 为真(图 2)。我不想要这种行为。我想指向绿色区域内的 return true(图 3)。
要实现您的目标,请像这样使用 BoxCollider2D.OverlapPoint
:
bool overlaps = myBoxCollider2D.OverlapPoint (somePoint);
BoxCollider2D
的 bounds
假设对象是 AABB - "axis-aligned bounding box",这意味着它没有像图 1 那样旋转和对齐。所以,真的是你的图片1和2证明了这一点。
来源:如果您转到 BoxCollider2D documentation, click on Bounds, then click on the Bounds class,您将看到边界所指内容的详细信息。