Unity's UI Toolkit ships with VisualElements and USS but no modal API, no toast system, no popup menu primitive, and no loading overlay. Every game ends up rebuilding the same scaffolding — input blocking, z-order stacking, backdrop dimming, queue management, and enter/exit animations — from scratch.
This asset is the missing layer. Drop a single OverlayManager component on your UIDocument and your panel gains async/await modal dialogs, a full toast notification system, region-scoped loading overlays, popup menus with anchor-flip positioning, and a built-in keyboard focus trap.
Modals that feel native.
Five dialog types out of the box: ModalDialog.AlertAsync, ConfirmAsync, PromptAsync, ChoiceAsync, and ShowCustomAsync<T>. Every dialog is awaitable so your code reads top-to-bottom — bool ok = await ModalDialog.ConfirmAsync("Delete?", "This cannot be undone."). Cancellation tokens, Escape-to-dismiss, default-button Enter handling, and a destructive-action preset all ship configured. The built-in keyboard focus trap keeps Tab and arrow navigation inside the topmost modal.
Toasts with real ergonomics.
Four toast types (Info / Success / Warning / Error), seven positions covering every UI corner, per-position lane stacking, queue management with three overflow strategies (Queue / ReplaceOldest / Drop), and a ToastHandle for live updates and dismissal. Toasts support icons, action buttons, progress bars, persistent variants, swipe-to-dismiss, and tap-to-dismiss. The static Toast.Show* API handles the simple case; ToastOptions exposes the full configuration surface when you need it.
Loading overlays that just work.
LoadingOverlay.ShowAsync blocks input on the entire panel; ShowInRegionAsync(region, ...) blocks input only inside a supplied VisualElement so the rest of your UI stays interactive. Four indicator styles ship animated from C# so they work without any USS theme: Spinner (rotating ring), HorizontalBar (determinate fill), CircularRing (true radial arc drawn via Painter2D), and Shimmer (sweeping highlight). A LoadingHandle updates message and progress on the fly. A minimum-display-time guard prevents the flash you get when a load operation completes faster than the user can see it.
Popups, dropdowns, and tooltips included.
PopupMenu.ShowAtAsync with enabled/disabled rows, separators, icon text, and shortcut hints. Dropdown<T> is searchable, single or multi-select, and virtualized via ListView so 100+ options stay responsive. Tooltip.Attach wires hover/focus tooltips with configurable delay. Every popup automatically dismisses on outside click, Escape, or a second click on the trigger element (toggle-to-close). A pure-function PopupAnchorResolver flips popups to the opposite edge when the preferred side would overflow the viewport.
Theming via CSS custom properties.
Override the bundled ModalNotificationsDefaultTheme.uss by setting 35+ CSS custom properties in your own USS — modal background, toast colors, loading indicator color, popup background, tooltip background, and more. A dark theme variant ships as a .theme-dark override class. The default theme auto-loads at runtime so overlays look correct the moment you press Play.
Five demo scenes included.
Modal Showcase (Alert / Confirm / Prompt / Choice / Destructive), Modal Stacking (three layered modals with compounding backdrops and LIFO dismissal), Toast Gallery (every type and position), Loading Overlay (all four indicator styles plus the region variant), and Popup Menu (context menu, dropdown, tooltip). Each demo ships with UXML, USS, controller script, and a README explaining what it shows.
Works with UI Toolkit: Screen Manager.
Opt into automatic overlay dismissal when a screen exits — useful when navigating away from a level / settings panel should also close any open modal or notification. Install UI Toolkit: Screen Manager, then open Tools > KrookedLilly > Setup and enable the Screen Manager → Modal & Notifications integration, then:
ScreenManagerIntegration.DismissOve
Description sourced from the Unity Asset Store listing.