What's Changed
New:
- Added
IUiAnalyticsinterface andUiAnalyticsimplementation for performance tracking - Added three editor windows:
UiAnalyticsWindow,UiServiceHierarchyWindow - Added new "UI Layer Hierarchy Visualizer" section to the
UiConfigsEditorinspector - Added
UiPresenterSceneGizmosfor visual debugging in Scene view - Added
UiPresenterEditorcustom inspector with quick open/close buttons - Added multi-instance support for UI presenters via
UiInstanceIdstruct and instance addresses - Added
UiInstancestruct to encapsulate presenter metadata (type, address, presenter reference) - Added feature-based presenter composition architecture with
IPresenterFeatureinterface - Added
PresenterFeatureBasebase class for composable presenter features - Added
AnimationDelayFeatureandTimeDelayFeaturecomponents for delayed UI operations - Added
UiToolkitPresenterFeaturefor UI Toolkit integration - Added
DefaultUiConfigsEditorfor out-of-the-box UI configuration (no custom implementation required)
Changed:
- Replaced
Task.DelaywithUniTask.Delaythroughout for better performance and WebGL compatibility - Updated
CloseAllUito avoid modifying collection during iteration - Enhanced
UiService.Dispose()with proper cleanup of all presenters, layers, and asset loader LoadUiAsync,OpenUiAsyncmethods now accept optionalCancellationTokenparameter- Updated the README with a complete information of the project
- Replaced
LoadedPresentersproperty withGetLoadedPresenters()method for better encapsulation - Migrated all delay functionality from
PresenterDelayerBaseto feature-based system (AnimationDelayFeature,TimeDelayFeature) - Converted all editor scripts to use UI Toolkit for better performance and modern UI
- Refactored
UiConfigsEditorto use UI Toolkit with improved visuals and drag-and-drop support - Optimized collection types (
Dictionary,List) for better performance inUiService - Removed loading spinner from
UiService(simplified initialization)
Fixed:
- CRITICAL: Fixed
GetOrLoadUiAsyncreturning null when loading new UI (now properly assigns return value) - Fixed exception handling in
UnloadUiwith properTryGetValuechecks - Fixed exception handling in
RemoveUiSetwith properTryGetValuechecks - Fixed redundant operations in
CloseAllUilogic - Fixed initial value handling for UI sets in editor
- Fixed serialization updates before property binding in editor
- Fixed script indentation issues in delay presenter implementations
Full Changelog: 0.13.1...1.0.0