New UI Widgets is a set of widgets and UI interactions; it also includes a widgets generator for the custom data types and converter from default Text to TextMeshPro.
Collections:
- Combobox / AutoCombobox
- ListView
- Table
- TileView
- TreeGraph
- TreeView
- DirectoryTreeView *
- FileListView *
Widgets can be generated for your custom type with the context menu “Create / New UI Widgets / Generate Widgets”
Virtualization (recycling) supported: game objects are created for visible items only.
Containers:
Dialog:
- DatePicker / DateTimePicker
- DateScrollerPicker / DateTimeScrollerPicker
- Dialog
- FileDialog *
- FolderDialog *
- Notify
- Picker
- Popup
- TimePicker
Controls:
Input:
- Autocomplete
- Calendar
- CenteredSlider
- CircularSlider
- ColorPicker
- ColorPickerRange
- DateScroller / DateTimeScroller / TimeScroller
- RangeSlider
- Spinner
- Switch
- Time / TimeAnalog
Other:
Interactions:
Includes UI Themes package.
Works with:
* not available on platforms with restricted access to the file system (like WebGL and Windows Store/UWP)
Asset Store
Demo
Documentation
Changelog
v1.18.10
- Unity 6.4 support
v1.18.9
- Autocomplete:
char[] DelimiterCharsreplaced withstring[] Delimiters - Cursors: fixed an incorrect warning when cursors are specified in the component
- ListView: added
OnItemDroppedevent - ModalHelper:
Open()method is replaced withOpenAt()method with simplified signature - RoundedCorners: added
FadeSupportoption, enabled by default - Tooltip: added an
AnchoredPositionoption to theTooltipSettings, used whenPositionis set toFixed - TreeView: added
NodeDroppedevent
v1.18.8
- fixed “[RuntimeInitializeOnLoad] methods cannot be in generic classes” warning
v1.18.7
- TrackView demo: fixed the stack overflow bug
- SafeArea demo: fixed swapped top and bottom border
v1.18.6
- Unity 6.3 support
- fixed error when an empty TextMeshPro package version 5.0.0 is installed
- fixed conversion from ColorHSV to Color (completely black and white colors were impossible)
- ListViewEnum: now you can specify a list of enums to use with
Wrapper = ListView.UseEnum(new [] { EnumType.Value0, EnumType.Value3, }); - Paginator: fixed the problem with Forced Position = Center on the first and last page
v1.18.5
- fixed error on first-time installation (“UITHEMES_INSTALLED” is not added to the “Scripting Define Symbols”)
v1.18.4
- ColorPicker: fixed a bug related to linear color space handling
- ListView: fixed a bug where an incorrect number of items were displayed when using large margins
- ListView: fixed a bug in Variable Size mode when the data type does not implement IComparable
- ListView: fixed a bug in Variable Size mode where rows or columns were miscalculated
- ListView: fixed a bug with ReversedOrder and asymmetric margins
v1.18.3
- Unity 6.1 and 6.2 support
- added implementation of the IEquatable<T> interface for all data types
- added ObservableData and ObservableDataWithPropertyChanged - base classes for the observable types
- added CalendarSpinner and DateSpinnerPicker prefabs (year can be changed with Spinner)
- added CalendarYearList and DateYearListPicker prefabs (similar to Windows calendar), replacing previous Calendar and DatePicker
- AutoCombobox: fixed disabled InputField when no selected item
- DateTime and DateTimePicker prefabs: now CalendarYearList is used by default
- ListView: fixed bug when deselect events are called with SelectedIndices in an invalid state
- Picker: added OnClose callback
- Popup: OnClose callback now is called after the close animation ends
- Tabs: added Animation, AnimationDuration, UnscaledTime, and CustomAnimation options
- TracksView: fixed bug with undisplayed items (thanks to cookiedrugs)
- WindowAnimations: fixed bug with incorrect anchorMax of the RectTransform
- WindowAnimations: one frame delay in animations is replaced with the OnAnimationStart event in the widgets that use this component
v1.18.2
- added FileTable prefab
- added StackView container
- added Unity Localization Support (will be used default table specified in the “String Database / Default Table Reference” in the localization settings)
- fixed error when InputSystem is not installed
- Dialog: added parent argument to the Show() and ShowAsync() methods
- EasyLayout: the SettingsChanged event now is called if values changed in the Inspector window
- EasyLayout: fixes for the Flex layout
- IViewData: added the OnItemChanged property
- ListView: added Flex layout support for the TileView with Fixed Size
- ListView: fixed bug with KeepScrollAtBottom when item is larger than ListView container
- ListViewComponent: added the OnItemChanged property
- Paginator: the VisiblePagesCount even values are rounded up to an odd number except 0
- Project Settings: now can change default namespaces and paths for the Widgets Generator
- RounderCorners and RounderCornersX4: now correctly work with the Mask component if Mask is placed after the RounderCorners component
- Shaders: fixed the shaders bug in VR mode
- Widgets Generator: added DataBind support for the Item property of the created ListViewComponent and TreeViewComponent
- Widgets Generator: fixed bug with get-only properties
v1.18.1
- ContextMenu: now the Visible and Interactable options of menu items are enabled by default
- Notification: added the AnimateOnHideButton option, if enabled the hide animation will run on HideButton click
- Notification Animations: the ShowDuration and HideDuration options are obsolete, use the ShowAnimationCurve and HideAnimationCurve options instead
- Notification Animations: removed the ShowAnimateOthers and HideAnimateOthers options, you can use the EasLayout.MovementAnimation option instead
- ScrollRectPaginator: now the ActivePage can work even if DefaultPage is not specified
- UIThemes Support: added support for default/active icons for the TabsIcons
- Widgets Generator: added support for the R3.SerializableReactiveProperty fields and properties
v1.18.0
- Dialog, Picker, Popup: added animations support, for the existing dialogs/pickers/popups you can add the WindowAnimations component or create a custom animation component with IWindowAnimations implementation
- EasyLayout: removed incorrect warning in some cases
- Notification: added the NotificationsAnimations component for open/close animations, it has more priority than ShowAnimation and HideAnimation fields and arguments, you can create a custom animation component with the IWindowAnimations implementation
- TableHeader: added the FillContextMenu and ContextMenuNames options to automatically fill ContextMenu to enable/disable columns
- UtilitiesTime static fields were replaced with WidgetsTime.Instance
- Widgets Generator: added ContextMenu to enable/disable table columns
- reduced amount of static fields
v1.17.16
- Effects: fixed bug with zero vertices (like Text component without any text)
- ListView: added the KeepScrollAtBottom option, which keeps the scroll at the bottom on DataSource changes (only if the scroll is already at the bottom)
- ObservableListFilter: Output now uses the same comparison as Input
- Widgets Generator: added option to specify paths for the created scripts, prefabs, scenes, etc
- Widgets Generator: added GeneratorPaths attribute to specify paths directly in the data type
- Widgets Generator: added GeneratorNamespace attribute to specify namespaces for the created scripts directly in the data type
- shaders: fixed bug related to HDR
- shaders: fixed bug related to VR
v1.17.15
- InputAdapter: added workaround to properly update layout because TMP_InputField does not call LayoutRebuilder.MarkLayoutForRebuild() when it should be
- ListView: the RetainScrollPosition option now correctly works with the enabled ReversedOrder option
- Project Settings: removed performance impact on enter/exit play mode
- Rating: fixed error on Value = 0
- Rating: now interactable works properly
- SafeArea: added OnScreenChange event with information about borders
- Swipe: added OnTap event
- UIThemes: added the “Attach UI Only” option in “Project Settings… / UI Themes”, if enabled ThemeTarget component will be added only to game objects with RectTransform component
v1.17.14
- COMPATIBILITY-BREAKING CHANGES: methods Updater.RunOnce(Action) and Updater.RunOnceNextFrame(Action) replaced with methods Updater.RunOnce(UnityEngine.Object owner, Action) and Updater.RunOnceNextFrame(UnityEngine.Object owner, Action)
- added ListViewDefaultItemAutoResize: automatically changes item instances size on ListView resize, used when only one item should be visible
- InputFieldAdapter: added the SetTextWithoutNotify(string text) method
- EasyLayout: added warning when one of the objects in the same row has relative width (or one of the objects in the same column has relative height)
- EasyLayout: added IgnoreLayoutElementSizes option: if enabled ILayoutElement options will be ignored, increases performance without side effects if ChildrenWidth and ChildrenHeight are not controlled
- EasyLayout: added Hex layout
- ScrollBlock: added ScrollBlockResizer component to resize ScrollBlock items to display specified item count independent of size
- TreeView: fixed bug in the TreeViewDropSupport components
- UIThemes: now support addressable assets, support can be enabled in “Project Settings… / UI Themes”
- UIThemes: Theme: added the AddressableSupport option, addressable assets can be preloaded with PreloadAddressable() or PreloadAddressable(VariationId) methods
- UIThemes: now requires references to the Unity.Addressables and Unity.ResourceManager in the UIThemes assembly definition
- UIThemes: now requires reference to Unity.Addressables.Editor in the UIThemes.Editor assembly definition
v1.17.13
- improved Assembly Definitions support
- ListView: reduced the SetData() calls for the item instances to improve performance
- ListView: fixed bug with DataSource.Clear()
- TreeView: improved RetainScrollPosition support
v1.17.12
- added ScrollRectAutoScroll component: allows scrolling content during drag&drop when the pointer is in less than a specified distance from the border
- ListView: fixed ReversedOrder for the horizontal direction
- Drag: added the DragDelay option - how many seconds must pass from the click to the start of dragging
- Drag: added the RedirectDragToScrollRect option - redirects the drag events to the parent ScrollRect if the drag starts before DragDelay time is passed
v1.17.11
- ListView: scroll no more “jump” when dragging backward and item size is changed
- Widgets Generator: fixed bug occurring when the default theme is not specified
v1.17.10
- COMPATIBILITY-BREAKING CHANGES: ActivateInputField() method renamed to Activate() in the IInputFieldProxy interface
- added DataLoader class to simplify loading and caching data
- Accordion: added Interactable option
- CenteredSlider: added Interactable and PointerButton options
- ColorPicker: added Interactable option
- Combobox: added Interactable option
- Combobox: added RepositionListView option, if enabled ListView is automatically positioned to be completely visible if partially hidden by the bottom or right side of the screen
- Combobox: added ChangeRounderCorners option, if enabled then corner radiuses will be changed to match the repositioned ListView
- FileListViewPath: added Interactable, DisabledColor, and PointerButton options
- ListView: added LoopedNavigation option, enabled by default, if enables/disables navigation from first to last item and vice versa
- ListView: added MultipleSelectRequireKeys option, disabled by default, items selection will work similarly to file explorer if enabled
- ListView: added RequireVisible option, number of visible items from current item to border on navigation
- ListView: scroll no more “jump” when scrolling backward when the item size is changed
- ListView: the LoopedList option now works correctly with items of variable sizes
- ListViewPaginator: fixed bug with empty ListView and incorrectly detected page in some cases
- OpenContextMenu: added Interactable and PointerButton options
- Paginator: added Interactable option
- SliderScroll: no more change Slider value if it is not interactable
- Tabs: added TabsScroll component to toggle tabs with mouse scroll
- TreeNode: fixed incorrect deserialization
- UI Themes: fixed ThemeTarget bug caused by removed component