Search Issue Tracker

Fixed in 1.1.0-pre.6

Votes

4

Found in [Package]

1.1.0-preview.2

Issue ID

1297536

Regression

No

EventSystem.current.IsPointerOverGameObject returns false when clicking on the GameObject after losing focus from the Game view

Package: Input System

-

Reproduction steps:
1. Open attached "case_1297636.zip" project and Scenes/SampleScene scene
2. Enter the Play mode
3. In the Game view, click on Click Me button
4. Click in the Hierarchy window (or anywhere else outside of the Game view)
5. In the Game view, click on Click Me button
6. Observe the Console window

Expected result: "Inside" is logged in both lines
Actual result: "Outside" and "Inside" are logged

Reproducible with: 1.0.0 - 1.1.0-preview.2(2019.4.29f1, 2020.1.17f1, 2020.2.0f1, 2021.1.0a10)
Could not test with: 2018.4.29f1(could not downgrade)

  1. Resolution Note (fix version 1.1.0-pre.6):

    Fixed in: Input System 1.1.0-pre.6

    Calling IsPointerOverGameObject() from within action callbacks will not work correctly. Starting with Input System 1.1.0-pre.6 there is a warning when doing so.

Comments (2)

  1. sarahnorthway

    Apr 21, 2021 17:46

    Alternate workaround: Input.mousePosition is correct during the first frame after gaining focus, so you can check its position within specific bounding boxes using RectTransformUtility.RectangleContainsScreenPoint.

  2. sarahnorthway

    Apr 20, 2021 23:18

    It seems raytracing, button clicks and other mouse-pointer-related behaviors also don't work on the first frame after Unity gains focus. Forcing EventSystem.current.currentInputModule.Process() doesn't help.

    The only workaround I could manage was to check IsPointerOverGameObject() again a frame or two later if it initially returns false.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.