How to handle changes of game window?

Hi there.

I asked something similar to this a while ago, but I can’t find it. I may not have posted it. And anyway, it’s got a bit more complex since then.

In a space shooter I have the main window or scene where all the shooting and other good stuff happens. But I also need a galaxy map, an inventory and building window, and some other stuff which which will all need to take control of the whole screen. Ideally I would like the UI screens to be over the main action screen, bluring and greying it out a little.

Now, I think I can handle a couple of screens with the canvas, should work well where the interaction is simple.

But the map screen is a bit different. The map is going to be a full 3d representation of sun, planets etc (in Solar mode) and a full 3d rep of all the solar positions in the galaxy view.

I can see how I might try to get to all the objects on different layers and dim them? Not sure if that’s practical.

Or I just have code in every object that dims a shader or material, this is laborious, will probably mean doubling the number of shaders, creating global routines for redirecting input etc.

Or I load a new scene. I really don’t want to do this, it’ll mean a lot of duplication of objects and code. I dislike duplication.

As I’ve not faced this before I’m not really sure what my options are, could a couple of you kind folks give a few ideas how this can be achieved?

Many thanks.

Use a separate camera that renders on top of the main game camera and doesn’t use clear flags (overlay camera in URP/HDRP). Use postprocessing volume to blur or dim the entire image from the main camera, then you can just draw the galaxy map on the second camera.