This Unity Editor plugin enhances the ui selection functionality in the SceneView of the Unity Editor. It improves the selection by ignoring empty ui elements and allows for click-through selection of 3D objects behind the canvas. It also fixes the (sometimes) random order of ui selections done by the Editor.
It also tries to address the issue that the screen space overlay canvases are quite often in the way of selecting
anything in the 3D scene. It does so by disabling those canvases if you get very close to them. This feature is still
in beta and therefore it's disabled by default. You can easily turn it on in the settings (Tools -> Smart Ui Selection > Settings).
If you are not sure what it does then please watch the intro video below or on Youtube.
If you find any errors then please use the support form, write to office[at]kamgam.com
Please be patient, replies may take a few days. Please include your Asset Store Order Nr in your request.
Thank you.
The auto-hide-screen-space-overlay-cavases feature is still in beta and thus disabled by default. It works but still requires further tweaking for better usability.
Download the Asset from the Asset Store and import it into your project. You are done, no additional setup is needed.
A new menu called "Smart Ui Selection" will be available under "Tools" in the main menu bar. Go check it out once the import is done.
Info: the asset files will be copied into /Assets/Plugins/SmartUiSelection/Editor. The settings and manual files will be created in the same location.
You can find or recreate the settings file (named "SmartUiSelection Settings") through the main menu (Tools > SmartUiSelection Settings). You can move it out of the plugins folder too. That's useful to avoid losing the settings if you reimport (update) the plugin.
Enables or disables the whole plugin. Turn this off if you suspect the plugin to cause any weird behaviour (none known at the moment).
If you click twice within this timeframe then the selection will cycle through all found ui elements. Time is in seconds.
If checked then objects whose hideFlags are set to HideFlags.NotEditable will be ignored.
If no ui element has been selected then try to click through the canvas and select 3D objects behind it. Works only for 3D objects with colliders.
Select 3D objects based on their colliders too. Useful for invisible objects which solely consist of colliders (like a trigger). Usually 3D objects are only selected based on their mesh.
Turn off if selection is slow in scenes with a lot of SpriteRenderers. If turned on then clicks are checked against the actual sprite mesh.
A raycast is used to detect 3D objects. This sets the maximum distance for the raycast in world units.
Enable ui selection improvements (always select what has been clicked).
If checked then Smart Ui Selection is only enabled if you press the 'Enable Smart Ui Key Code' key.
Push and HOLD this key to disable Smart UI Selection (works only if "Push Key To Use Ui Selection" is turned on).
If checked and if the key is pressed then Smart Ui Selection will ignore your exclude lists (act as if they are empty).
Push and HOLD this key to disable the exclude lists (works only if "Push Key To Disable Exclude Lists" is turned on).
Limit ui selection to elements with graphics (objects which have a 'Graphic' component).
Select elements only if they have an alpha value above the threshold. 'Limit Selection To Graphics' needs to be turned on for this to have any effect.
Check to completely ignore the [SelectionBase] Attributes.
Add names of ui elements which should not be selectable. The names have to match exactly.
Add tags of objects which should not be selectable. The names have to match exactly.
Should ScreenSpaceOverlay canvases be hidden in the scene view if the editor camera gets very close? Useful to prohibit unwanted canvas selections while you edit the 3d scene. They will only be hidden if your mouse cursor is in the scene view. Notice that this will only affect ScreenSpaceOverlay canvases.
ScreenSpaceOverlay canvases will be hidden if the editor camera distance to the XY plane is less than X.
Should ScreenSpaceOverlay canvases be hidden in play mode too?
Show a warning text next to canvases to indicate that auto-hide is turned on? Useful in team setups when others might not expect a canvas to automatically vanish in the SceneView.