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

  1. Open Window > UI Framework > UI Setup Manager and create a config.
  2. Create elements, build each screen under its Root and choose its animations.
  3. Create states from those elements and click Build Runtime UiConfig.
  4. 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.