UI Framework – Scene-Based UI State Stack
Features ... How to use ... In code: await UiManager.InitializeAsync(); then await UiManager.ShowState< ... Every change was reviewed, tested in Unity and is maintained by the author.
by Dawaniyah Games
Price History +
UI Framework builds your game UI from Addressable scenes loaded additively and managed on a LIFO state stack. Each screen (a state) is made of element scenes such as a top bar, a nav bar and the page itself. One call shows a screen or pushes a popup; the framework loads what is needed, keeps what is shared, animates the change and unloads what nothing uses any more.
Features
- One scene per element: each UI piece is its own Addressable scene, loaded and unloaded on demand, so teams can work on different screens without merge conflicts.
- State stack: replace the whole UI with ShowState<T>(), or push modals and overlays on top with additive: true. HideUI() pops back.
- Shared elements: scenes used by consecutive states (a nav bar, a currency bar) stay loaded and don't re-animate.
- One data contract: pass any object as context and every element receives it in Populate(object context).
- Built-in animations: Fade, Scale, Slide up/down/left/right, ClickPop, SettlePop and Shake per element, with overlapping transitions (no flash, no empty frame) and per-call overrides.
- Editor tooling: the UI Setup Manager (Window > UI Framework) generates element scripts and scenes, state classes and the runtime config, and validates and fixes scene structure in one click.
- AI-friendly structure: every screen follows the same fixed layout, so generated code stays organized.
How to use
- Open Window > UI Framework > UI Setup Manager and create a config.
- Create elements, build each screen under its Root and choose its animations.
- Create states from those elements and click Build Runtime UiConfig.
- In code: await UiManager.InitializeAsync(); then await UiManager.ShowState<MainMenuUiState>();
The package ships no sample config on purpose: a project has exactly one UiConfig, and you build yours from scratch. To see a complete mobile-game UI built with it (intro, tabs, shared top and nav bars, popups), clone the free showcase project on GitHub.
Compatibility: Unity 6 (6000.0 LTS) or newer, tested on Unity 6.0 LTS and 6.6. Works with the Built-in Render Pipeline, URP and HDRP, because it only uses uGUI canvases. Dependencies: Addressables 2.2.2 or newer and uGUI 2.0, installed automatically by the Package Manager.
Limitations: ShowState and HideUI calls are not queued for you, so await each one (or queue them in one navigator class). A project has one runtime UiConfig. The framework does not do input routing, data binding or localisation.
Documentation: a full offline manual is included in the package (README.md). Online docs and video tutorials: https://www.dawaniyahgames.com/uiframework/
Showcase project (a separate free project, not included in this package): https://github.com/dawaniyah-games/UiFramework
Support: info@dawaniyahgames.com, or GitHub issues and discussions.
AI disclosure: Designed and directed by Mohamed Moghazi (15 years shipping Unity games). The architecture, API and editor workflow are his; AI coding assistants (Claude) were used to help write and review code and documentation. Every change was reviewed, tested in Unity and is maintained by the author.