Unity Physics2D.OverlapBox始终返回false

时间:2018-03-30 13:46:55

标签: c# unity3d unity3d-2dtools

我试图使用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个单位的盒子,以鼠标位置为中心。 由于某种原因,它总是返回false。我做错了吗?

1 个答案:

答案 0 :(得分:1)

您将mousePosition而不是position传递给OverlapBox方法,这就是为什么它不起作用。

此外,请记住OverlapBox将返回null(因此colliderHere = false)如果您点击碰撞器,如果Queries Hit Triggers设置为Physics 2D 1}}关闭。