Unity Physics2D.OverlapBox 总是 returns false
Unity Physics2D.OverlapBox always returns false
我正在尝试使用 Physics2D.OverlapBox 检查鼠标点击时鼠标下方是否有对撞机。
OverlapArea 和 OverlapCircle 有效,但 OverlapBox 无效,我不确定为什么!
这是代码
void Update () {
if (Input.GetButtonDown("Fire1"))
{
Vector3 mousePosition = Input.mousePosition;
mousePosition.z = 10;
Vector2 position = Camera.main.ScreenToWorldPoint(mousePosition);
bool colliderHere = Physics2D.OverlapBox(mousePosition, new Vector2(3,3), 0, roomLayer);
Debug.Log(position + " — " + colliderHere);
}
}
我正在尝试使用一个宽度和长度各为 3 个单位的框,以鼠标位置为中心。
由于某种原因,这总是 returns false。我做错了什么吗?
您将 mousePosition
而不是 position
传递给 OverlapBox
方法,这就是它不起作用的原因。
此外,请记住 OverlapBox
将 return null
(因此 colliderHere = false
)如果你点击一个碰撞体,如果设置 [=16] =] 在 Physics 2D
中关闭。
我正在尝试使用 Physics2D.OverlapBox 检查鼠标点击时鼠标下方是否有对撞机。 OverlapArea 和 OverlapCircle 有效,但 OverlapBox 无效,我不确定为什么!
这是代码
void Update () {
if (Input.GetButtonDown("Fire1"))
{
Vector3 mousePosition = Input.mousePosition;
mousePosition.z = 10;
Vector2 position = Camera.main.ScreenToWorldPoint(mousePosition);
bool colliderHere = Physics2D.OverlapBox(mousePosition, new Vector2(3,3), 0, roomLayer);
Debug.Log(position + " — " + colliderHere);
}
}
我正在尝试使用一个宽度和长度各为 3 个单位的框,以鼠标位置为中心。 由于某种原因,这总是 returns false。我做错了什么吗?
您将 mousePosition
而不是 position
传递给 OverlapBox
方法,这就是它不起作用的原因。
此外,请记住 OverlapBox
将 return null
(因此 colliderHere = false
)如果你点击一个碰撞体,如果设置 [=16] =] 在 Physics 2D
中关闭。