- Various fields and types had been renamed, therefore this fork is incompatible with the original minhdu/uiman. If you are using the original source, DO NOT upgrade to this fork.
The original example has been upgraded and moved to grashaar/uiman-examples
-
First, install OpenUPM-CLI, NodeJS 12 is required
npm install -g openupm-cli
-
Then, install this package
openupm add com.minhdu.uiman
-
Copy everything inside UIMan/Area51/Resources folder to your project's
Assets/Resources
folder
The original minhdu/uiman could only load UIMan objects (UIManScreen
, UIManDialog
, textures and sprites) via Resources.Load
method.
This fork, however, requires you to write a custom loader that implements IUIManLoader
. Then you must integrate it into UIMan by calling UIManLoader.Initilize(IUIManLoader)
before showing any screen or dialog.
This is an example that loads objects provided by the Addressable Asset System.
NumberBinder
: rename the fieldtimeChange
toduration
ImageFillAmountBinder
: rename the binding field from "float" to "Fill Amount", rename the fieldtimeChange
toduration
ProgressBarBinder
: rename the binding field of from "float" to "Value", rename the fieldchangeTime
toduration
, removetweenValueChange
- Rename
UIActivityIndicator
toUIActivity
- Rename
UIMan.Loading
method toShowActivity
- Add more binding fields to
ImageFillAmountBinder
,NumberBinder
,ProgressBarBinder
,SliderBinder
,TextBinder
- Add
IUnuLogger
interface UnuLogger
is now a static class, all of its members are refactored into a private innerDefaultLogger
class which implementsIUnuLogger
interfaceUnuLogger
can now take another implementation ofIUnuLogger
interface as a substitute for theDefaultLogger
- Improve
UIActivity
andUIMan.ShowActivity
- Add
EnumAdapter<T>
- Support two-way data binding via
TwoWayBinding
class - Implement
ToggleBinder
,SliderBinder
,ScrollbarBinder
,DropdownBinder
- Implement
DropdownOptionAdapter
andDropdownOptionConverter
- Update
InputFieldBinder
with two-way binding
- Support data coversion via
Adapter<T>
andConverter<TValue, TAdapter>
- Implement
BoolAdapter
,IntAdapter
,FloatAdapter
,StringAdapter
,ColorAdapter
- Implement
BoolConverter
,IntConverter
,FloatConverter
,StringConverter
,ColorConverter
- All binders are now using converters for their binding values
- The
Convert(object)
method could be overrided by using a custom adapter that inherits from one of any default adapters
UIManAssetLoader
has been changed toUIManLoader
.- All
UIManLoader.Set
methods have been removed. Now,UIManLoader
must be initialized by theUIManLoader.Initialize(IUIManLoader)
method. SpriteAtlasImageBinder
will now get sprites fromSpriteAtlasManager
to reduce memory usage.- To replace the default atlas manager, create a class that implements
ISpriteAtlasManager
interface, then pass it toSpriteAtlasManager.Initialize(ISpriteAtlasManager)
method.
- Renovate UIMan to support UPM
- Various fix and breaking changes
- Add some binders
Fast and flexible solution for UI development and management with MVVM pattern.
- Support Databinding, Observable and MVVM for implementing UI with uGUI.
- Prefab base UI with async loading.
- UI flow and layer management system.
- UI animation (show, idle, hide).
- UI events.
- Customizable activity indicator.
- Unlimited list (scroll rect).
- Component-based binders.
- Easy to extend and customize.
- Auto code generation.