Unity UI Framework
Complete solution for MVC/MVVM architecture UI

🤔 My name is Elijah, I've been working in the game development industry for more than 10 years and I love to solve various problems related to my field.
🔭 My main tool as a person working with both mobile and console games is of course Unity.
⚡I also worked with WebGL and used mostly C# or NodeJS as a server language. I would be glad to share my experience - you can always write to me in Discord (SodaBoom).
Unity UI Framework - A set of tools for interface developers, ready to use in your projects and supporting the MVC/MVP/MVVVM patterns. The basic architecture works based on View and Layouts, and interaction is handled by an event system to make your interface logic independent.
No need examples? Download now here!
Tested at Unity 2019.3+
Features:
Ready for MVP/MVC/MVVM;
Views and Layouts loading from Scene / Resources;
UI Controller for Views Management and Navigation;
Binding / Unbinging Events;
UI Particle System and UI Shaders;
Simple Components Like Imaged Button and Web Image;
Optimized for every platform;
Dependencies:
Unity Event Framework (included in project);
Unity UI (UGUI);
TextMesh Pro UGUI;
Get Started
Unity UI Framework is designed for your application and games using Unity UI (UGUI) and support Unity 2019+.
Installation process:
Download and import latest release from this page;
See usage examples below;
See Demo Scene to learn how it works (UIFrameworkDemo):

How it works?
The UI Framework works according to the View / Navigation / Layouts scheme. And separates entities between them. Each screen or window is a View that is stored in history for navigation. Each View can have its own unlimited number of Layouts. One of the View must be the home View for navigation.
For more info see Usage Examples or see Demo Scene.
Usage
Views Binding:
UIFramework.BindView(Instantiate(homeView), true); // Home Page
UIFramework.BindView(Instantiate(pageView)); // Sub-Page
Navigate to another view:
EventMessenger.Main.Publish(new OnViewNavigated {
View = typeof(DemoPageView),
Display = new DisplayOptions { IsAnimated = true, Delay = 0f, Duration = 0.5f, Type = AnimationType.Fade },
Data = new DemoPageView.Data {
Title = "Demo Page",
Content = pageContent
}
});
More Information at official GitHub.






