I’m trying to create a game which almost entirely consists of UI with some underlying simulation (I haven’t yet decided whether to ‘visualize’ any parts of the simulation with moving objects etc., but that would probably be a task for version 2 at this rate).
As a result, I essentially have a need for many different ‘Screens’ in which I might want to, for example, show a list of entities and, in another screen, detailed data regarding the one specific entity that was clicked on.
What I’m trying to establish is the best ‘architecture’ for structuring the flow inside Unity. Should the individual ‘Screens’ be multiple panels inside one Canvas that I switch on and off in order to transition between them? Individual Canvases? Completely separate Scenes?
I’ve had a go at various different approaches which all threw up different challenges. For example, the separate Scenes approach had me delving into Singletons to be able to reference the game data from anywhere and hold some kind of ‘state history’ that I could use for forward / back buttons. Alternatively, just using UI elements did away with some of that, but made the Editor a bit cluttered and I worried about the overall performance of having lots of elements in one Scene (albeit all inactive apart from the ‘current’ one).
I imagine any or all approaches could be ‘made’ to work with enough effort, but I was wondering if anyone had any advice on which approach might lend itself best to this kind of game with Unity’s new UI. Any thoughts?