Search Issue Tracker

Fixed in 5.4.0

Votes

1

Found in

5.1.1f1

Issue ID

725973

Regression

No

Physics 2D Raycaster triggers events on objects that are behind the camera

UI

-

Reproduction steps:
1. Open the attached project
2. Open the "mainscene" scene
3. Set the main camera to orthographic, enable the attached Raycaster2D component, and disable the BetterRaycaster2D component
4. Enter play mode
5. In the game view hover your mouse cursor over the yellow sprite
--- You mouse over the sprite, you get a message in the Console
6. Exit play mode
7. Change the sprite's z-coordinate to -20
--- Which puts it behind the camera and out of view
7. Enter play mode
8. Mouse over where the sprite used to be
--- Note the console says the sprite is being moused over. This should not happen.

User suggested a fix:
The offending Unity code, as found at https://bitbucket.org/Unity-Technologies/ui/src/fadfa14d2a5cb8d6462db067e669b4b2bc11a018/UnityEngine.UI/EventSystem/Raycasters/Physics2DRaycaster.cs?at=4.6
var hits = Physics2D.RaycastAll(ray.origin, ray.direction, dist, finalEventMask);
They propose changing that to:
var hits = Physics2D.GetRayIntersectionAll(ray, dist, finalEventMask);

This change also fixes case 734723

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.