UI in the scene view issue

Hello,
I would like to address an issue that I’ve noticed when working within Unity. This happens so many times and it’s generally frustrating.
When I work for example in my scene and I want to select some game object(-s), I keep selecting canvas or canvas UI elements instead as they are in the way. I always center my scene content at zero location so canvas is in the middle of the scene, which also means that UI elements hide half of your scene as well.

What I think would be a great thing is if you could press some button to hide/show all UI elements in the scene view, something like Lightning or Effects for example or only show UI if you’re in the 2D mode or something.

I know that you can press that eye icon in the hierarchy to hide/show objects, but it would be much simpler if there would be some single button to toggle UI as sometimes I have more than one canvas so I need to constantly go through all canvases.

And also if canvas is within DontDestroyOnLoad scene you can’t hide it, so the only way around it is to disable the entire object, which sometimes when you test stuff is really inconvenient as you also need the UI as well. So you constantly need to disable and then enable again.

This feature would save time and would make the work progress much simpler I think.

I second that. The canvas in the middle of the scene always gets in my way when editing the scene. It would be very nice of you, Unity Team, if you’ll move it somewhere it won’t constantly mess with scene objects if it is not configured for world space or camera

You can set this up yourself.You can set which layers is visible in the layers-dropdown in the upper right corner of the screen. If you set the UI layer invisible and the other layers visible, you get the desired effect.

We’ve set up a MenuItem toggle for that, and bound that to a shortcut, so we can quickly switch between ui and scene.

public static class EditorCommands {
    private static int uiLayers = LayerMask.GetMask("UI");

    [MenuItem("Commands/Toggle/UI Layers %u")]
    public static void ToggleUILayers() {
        if (Tools.visibleLayers != uiLayers)
            Tools.visibleLayers = uiLayers;
        else
            Tools.visibleLayers = ~uiLayers;
    }
}

This tool is nice for that

I solve this problem either by creating separate UI scene or setting up canvas for camera and moving it with it’s camera somewhere where it is not getting in my way every time I want to change something in the scene.

We have this problem just as often at runtime as at edit time - we want to click an npc to debug it, whoops hit a canvas that we can’t actually see, but that covers our scene view. Having it in a different scene then won’t help.

At least it saves me kilometers of nerves when editing my scenes ) Also, I rarely click in scene to debug. My favorite tool for debugging is console window. In my editor layout console occupies about as much space as scene view and game view combined. But yes, you absolutely right this is half-solution and that canvas is annoying.