Search Issue Tracker
Fixed in 2022.2.4f1, 2023.1.0a22
GameObject is selected in the Scene view when clicked on, even though there is code preventing that
Steps to reproduce:
1. Open the user’s attached project
2. Open the “Assets/Scene_Bug.unity“ Scene
3. In the Scene view select the “Cube” GameObject
4. Try selecting the “Plane” GameObject
Expected result: The Cube GameObject stays selected
Actual result: The Plane GameObject gets selected
Reproducible with: 2022.2.0a4, 2022.2.0b10, 2023.1.0a13
Not reproducible with: 2020.3.40f1, 2021.3.12f1, 2022.1.18f1, 2022.2.0a3
Reproducible on: Windows 10
1. Holding Shift when trying to select the “Plane” GameObject results in the correct behavior in 2022.2.0a4 and above
2. Look at the attached videos for clarity
3. User comment from ERTemplateEditor script:
??The below line has always worked in previous Unity versions. We use something like this in different ways in Asset Store tools to keep the current game object selected and perform tasks/processes when specific other child objects in the scene are clicked. In this case, after clicking the plane on MouseUp the Cube is deselected and OnSceneGUI is no longer called, it breaks the tool workflow. But when for example keeping the Shift key pressed and clicking the plane, OnSceneGUI() does run and the cube will remain selected. In previous versions it was not necessary to press the Shift key to keep the same game object selected. And the Shift key already is used for specific processes so this workaround is not an option.??
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
- UI Toolkit's MinMaxSlider snaps unexpectedly in Runtime
- [2D] [URP] Objects are rendered twice when Foremost Sorting Layer is enabled
- Physics applied to Rigidbody is not fully disabled when setting the Rigidbody to Kinematic
- Scene view turns black when using a custom Mesh Renderer
- VFX Graph ZWrite has no effect when using URP PostProcessing DoF effect
Resolution Note (fix version 2023.1.0a22):
I reverted the change that caused the OnSceneGUI event to exit early after a selection change, restoring the behaviour of previous Unity versions.
However, I would not recommend this method of preventing selection changes in the scene view. A more efficient way would be to register a default control to prevent picking from allowing any selection change in the first place.
public class ERTemplateEditor : Editor
// Example code showing how to prevent selection changes from clicking in the Scene View with an object selected.
static void InterceptPicking()
var evt = Event.current;
var id = GUIUtility.GetControlID(FocusType.Passive);
// If the event is left mouse button and no navigation key modifiers are pressed, add a default control.
// A default control will let any handles or ui in the scene take priority, but if nothing is closer
// it will be chosen as the active control. Since picking is also a default control but tested after
// all user code, this gives us the chance to intercept the event.
if(evt.button == 0 && !evt.alt)
if (HandleUtility.nearestControl == id)
GUIUtility.hotControl = id;
if (GUIUtility.hotControl == id)
GUIUtility.hotControl = 0;