A comprehensive fluent UI builder system for Unity
Flow UI System is a powerful Unity package that revolutionizes UI development through a fluent interface pattern. Build complex UI hierarchies with intuitive method chaining, centralized management, and comprehensive editor tools.
Build UI elements with elegant, readable code:
uiManager.Button("MainMenu/PlayButton")
.SetText("Play Game")
.SetColor(Color.green)
.SetSize(200, 50)
.OnClick(() => StartGame())
.Build();- Single UIManager component manages all UI elements
- Path-based hierarchical organization
- Category system for logical grouping
- Automatic lifecycle management
- Search & Filter: Quickly find any UI element
- Hierarchy View: Visual tree representation
- Smart Naming Assistant: Automated naming conventions
- Missing Reference Detection: Auto-detect and repair broken references
- Quick Start Window: Guided setup for new users
Support for all essential UI components:
- ButtonBuilder
- TextBuilder (TextMeshPro)
- ImageBuilder & RawImageBuilder
- InputFieldBuilder
- ToggleBuilder
- SliderBuilder
- DropdownBuilder
- ScrollRectBuilder
- PanelBuilder
Built-in UIAnimationController for smooth transitions and effects.
Robust SafeExecute wrappers ensure graceful error recovery.
- Open Unity Package Manager (Window > Package Manager)
- Click the
+button → "Add package from git URL" - Enter:
https://github.com/nimritagames/Unity-FlowUI.git
Add to your Packages/manifest.json:
{
"dependencies": {
"com.nimrita.flowui": "https://github.com/nimritagames/Unity-FlowUI.git"
}
}- Clone this repository
- Open Unity Package Manager (Window > Package Manager)
- Click
+→ "Add package from disk" - Select
Packages/com.nimrita.flowui/package.json
using Nimrita.FlowUI;
// Create UIManager (or add via Unity Editor)
GameObject uiManagerObject = new GameObject("UIManager");
UIManager uiManager = uiManagerObject.AddComponent<UIManager>();// Create a panel
uiManager.Panel("MainMenu")
.SetSize(400, 600)
.Build();
// Add a title
uiManager.Text("MainMenu/Title")
.SetText("Welcome!")
.SetFontSize(32)
.Build();
// Add a button
uiManager.Button("MainMenu/PlayButton")
.SetText("Play")
.OnClick(() => Debug.Log("Game Started!"))
.Build();uiManager.AddCategory("MainMenu", Color.blue);
uiManager.AddCategory("Settings", Color.green);
uiManager.AddCategory("HUD", Color.yellow);Packages/com.nimrita.flowui/
├── Runtime/ # Core runtime code
│ ├── UIManager.cs # Main manager component
│ ├── UIReference.cs # Reference system
│ └── UI_Builder/ # Builder implementations
├── Editor/ # Unity Editor tools
│ ├── UIManagerEditor.cs
│ ├── SmartNamingAssistant.cs
│ └── ...
├── package.json # UPM manifest
├── README.md # Package documentation
├── CHANGELOG.md # Version history
└── LICENSE.md # MIT License
UI elements use hierarchical paths for organization:
"Panel/SubPanel/Button" // Parent/Child/GrandChildAll elements follow a consistent fluent interface:
uiManager.ElementType("Path")
.ConfigMethod1(value)
.ConfigMethod2(value)
.Build();Group and color-code related UI elements:
uiManager.AddCategory("CategoryName", Color.blue);- Unity 2022.3 or later
- TextMeshPro 3.0.7+
- Unity UI (UGUI) 1.0.0+
Check the package README for detailed examples and API documentation.
Contributions are welcome! Please feel free to submit pull requests or open issues.
developmentbranch: Active developmentmainbranch: Stable releases only
This project is licensed under the MIT License - see the LICENSE.md file for details.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
See CHANGELOG.md for version history and release notes.