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
- Texture Import Warnings are obscured by other Terrain Layer options in the Inspector
- Burst Inspector middle divider is jittering when resized with the Burst Inspector window docked
- JsonConvert conversion fails trying to call GetCallbackMethodsForType when [OnDeserialized] is used in a class
- Different text alignment in the column header in Entities "System" window
- Objects with Universal Render Pipeline/Particles/Lit shader are always lit up when changing their Rendering Layer Mask
Add comment