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
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
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Custom ScriptableObject asset in the project setting are not well deserialized during the Reimport All process
- Fixing Message Loss in UMPE During Domain Reload
- The Editor freezes when ScheduleReadOnly of IJobParallelForTransform with dependency is used
- Text is truncated in the Inspector when the display scale is set to 150%
- CancellationTokenSource(<timeout>) has incorrect cancellation status when used in WebGL Player
Add comment