2

I'm trying to use Physics2D.OverlapBox to check if a collider is underneath the mouse when it's being clicked. OverlapArea and OverlapCircle works, but OverlapBox doesn't, and I'm not sure why!

Here's the code

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);
    }
}

I'm trying to use a box with a width and length of 3 units each, centered around the mouse position. This always returns false for some reason. Am I doing something wrong?

Andy
  • 357
  • 2
  • 17

1 Answers1

1

You're passing mousePosition instead of position to the OverlapBox method, that's why it doesn't work.

Moreover, remember that OverlapBox will return null (and thus colliderHere = false) if you click on a collider which is a trigger IF the setting Queries Hit Triggers in the Physics 2D is off.

Galandil
  • 4,169
  • 1
  • 13
  • 24