Weird hitcollider problems

Ok, this one is giving me gray hair and I have no idea why it is behaving how it is.

What I’m trying to do is grab the bottles on the screen and move them around using the mouse. So far I’m only at trying to grab the bottles, which is acting weird. Currently I have added a script to the main camera where I have the following code in the Update method:

if (!Input.GetMouseButtonDown(0))

Camera mainCamera = FindCamera();
int layerMask = 1 << 8;

Vector2 worldPoint = Camera.main.ScreenToWorldPoint(Input.mousePosition);
RaycastHit2D hit2 = Physics2D.Raycast(worldPoint,, Mathf.Infinity, layerMask);

if (hit2.collider != null)

In the screenshots below Fig 3 is showing the BoxCollider2D attached to the bottle
In the screenshots just ignore those small bugs flying around, they make no difference

Now do explain the weird things happening:

If you look at Fig 1 and Fig 2 you will not notice a lot of difference. If you look closely you can see the bottle is moved a bit to the side on one screenshot, but for some reason this makes a big difference in the above code. In Fig 1 no matter where I click the mouse, it will not hit anything at all. In Fig 2 I can click EVERYWHERE on screen and it will believe I actually hit the bottle

Any idea on what could be the problem?


I have solved the problem. All I needed was to add a z position to the mouseposition like this:

Vector3 mousePosition = Input.mousePosition;

        mousePosition.z = Mathf.Abs(Camera.main.transform.position.z);

        Vector2 worldPoint = Camera.main.ScreenToWorldPoint(mousePosition);