SharpUI GUI

SharpUI
The SharpUI asset is developed with clean code in mind and is also unit tested. It should be noted that there are two library dependencies for this project, UniRx and NSubstitute. UniRx is unitys reactive extension library that supports most of the reactive features. NSubstitute is used for mocking in unit tests.

UniRx: https://github.com/neuecc/UniRx
MVP (Model View Presenter)
This project is built with MVP pattern throughout the demo scenes and the base MVP setup scripts are part of the package. For the sake of Unity and because we thought it would make more sense, we have decided to call the View for Component, so what we basically have is MCP (Model Component Presenter).

Package content

Elements and components:
- Model View Presenter base setup classes
- Advanced skill tree system with modular building elements
- Action Bar buttons and utilities
- Lists and Arrow Lists
- Selection strategies for lists
- Adapters for lists and Arrow Lists
- Buttons (Rectangular, Circular, Icon, Tab, Skill Tree)
- Decorators for button sprites, colors and texts (color, scale, offset, visibility, extendable)
- Dialogs with predefined buttons
- Drop down
- Input Text Fields
- Loading Bar
- Modal Views
- Notifications
- Progress Bars, Skill Bars and ResourceBars (customizable)
- Sliders
- Toggle buttons (checkmark / square)
- Button selection groups
- Tooltips with custom content

Utilities:
- Canvas Group animation helper
- Keyboard input listener (works with all buttons and can also be standalone)
- Scene loading, unloading, additive with on complete callback
- Managed UI update to control the refresh rate of UI components
- Cooldown utils with time formatting and time consuming
- Collision detection for UI elements
- Password encryption tools
- Reactive delay observer

Unit Tests
As this is the core UI library for our main game project we have decided to write unit tests for all the core features and also the demo scenes. The core components have 100% code coverage with 700+ unit tests. Things that are not included in tests are prototype and view(component) scenes as those deserve manual UI testing.

Contact
Product Support: support@boki.dk