C# Unity Physics2D.Overlapper框始终返回false

C# Unity Physics2D.Overlapper框始终返回false,c#,unity3d,unity3d-2dtools,C#,Unity3d,Unity3d 2dtools,我正在尝试使用Physics2D.Overlappbox检查鼠标单击时碰撞器是否在鼠标下方。 Overlapparea和OverlappCircle有效,但Overlappbox无效,我不知道为什么 这是密码 void Update () { if (Input.GetButtonDown("Fire1")) { Vector3 mousePosition = Input.mousePosition; mousePosition.z = 10;

我正在尝试使用Physics2D.Overlappbox检查鼠标单击时碰撞器是否在鼠标下方。 Overlapparea和OverlappCircle有效,但Overlappbox无效,我不知道为什么

这是密码

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。我做错了什么吗?

您正在将
鼠标位置
而不是
位置
传递到
重叠框
方法,这就是它不起作用的原因


此外,请记住,
overlappebox
将返回
null
(因此
colliderher=false
)如果在
Physics 2D
中的设置
Queries Hit Triggers
处于禁用状态时,单击作为触发器的碰撞器。

您的意思是,如果将重叠框与面积或圆交换,它将返回真值?这只是在黑暗中拍摄,但如果不将Z位置设置为10,会发生什么?