Window Framework for Unity UI Toolkit
View on the Asset Store
Available soon as a Unity Asset Bundle with our new Input Rebinder
Create advanced runtime UI windows in Unity using UI Toolkit – with drag, resize, theming, memory, and full customization.
Window Framework for UI Toolkit is a powerful, modular windowing system that enables developers to create runtime UI windows with drag, resize, and save-state functionality — all built with Unity UI Toolkit (UITK) using the Unity 6 Editor. Whether you're building tools, RPG menus, debug interfaces, or production overlays, this framework gets you up and running quickly.
Online Documentation that covers how to use the asset, including an explanation of the demo and the example window types that can be used as starting points for your project.
- Key Included Features -
Movable / Draggable Runtime Windows with UXML support
Allow your players to organize the screen as they like with moveable runtime windows that respect available screen space. Expandable to allow for the use of your existing custom controls or drag and drop features using Unity UI Toolkit, even use your existing Unity UI Builder UXML documents as content
Runtime UI Window Resizing
All generated windows have the option to be resizable allowing your players to fine tune there screen space to best suit the situation
Runtime Window with Size and Location Memory
Being able to move and resize windows only really matters if the game remembers the settings right? That why the Window Framework has a built in memory function that can be activated on any custom window type all open windows are tracked in memory and can be reopened after restarting the game with a single call to the Window Frame Controller.
Driven by Unity's Style Sheet System offering USS themes
Unity's USS Style Sheet and Theme system works much like standard Cascading Style Sheets system used in websites allowing for endless design options for everything!
Support for multiple Runtime Themes
Built in support for multiple theming options that can be selected and applied at runtime for endless design possibilities. These themes have an option to be applied to the Framework only or to the entire UI panel. When applied to the UI panel, the theming system applies to ALL visual elements on the panel regardless of if the item is in the Framework or not. Even further, you can use Unity TSS Theme files, which are collections of StyleSheets and other theme files. This allows you to add many stylesheets to your themes and apply them all, at runtime!

Configurable Runtime Context Menu
The built in Context Menu used for the Window options menu is attachable to any Visual Element created. This means that you also get a ready to go, fully configurable context menu that can be used on items, inventory, or any other visual element that needs a sub menu by adding the activation manipulator to a UI element with the element.AddManipulator()
command. And as weith all Visual Elements, the Runtime Contextual Menus also have their own styling areas so you can adjust the lok and feel of your menus to match your project.

Runtime Tooltip (on hover) for Visual Elements
Display a tool tip with configurable delay and fade times that are also saved in the memory system so your players can adjust the interface to their personal playstyle. just set the elements tooltip value with: element.tooltip="String To Display..."
to a Visual Element and the built in Runtime ToolTip manupulator does the rest
Starter Settings Window adaptable for any project
Every game has a settings menu that allows the players to tailor the system to their personal playstyle, and we have included a basic settings window with working controls to modify tooltip and context menu delays and fade times. Even more, your users can select from your created themes to further personalize the interface. This of course uses the Window Framework for its display and serves as a great working example of content.
The Window Frame Controller
View on the Asset Store
Window Memory Enabled/Disabled
When checked this option will Enable window and settings memory. Individual windows will still need to be set with WindowMemoryEnabled = true and must be a dedicated type.
Save Data File Name
Filename for the settings memory, stored in the projects persistent data folder.
Runtime Tooltips Enabled/Disabled
When checked this option will Enable tooltips for window frame elements, including content. Tooltips will be auto assigned, all you have to do is specify some text in the element tooltip filed and the system will do the rest.
USS Theme Data
Theme data is stored as a serializable scriptable object so everything is placed into your build. The currently active theme is handled by the memory system allowing reset to the default theme at any time.
Default USS Style sheet
The default stylesheet is used when no theme data is available. This is a perfectly viable choice for a single theme project.
Pre-Installed USS Themes
A list of installed themes, the circle indicator on the left specifies which theme is the active theme and can be set with the A button (outside of runtime), the defaults is specified by the [default] in the theme title and can be set with the D button. and you can remove a theme with the R button.
Adding Additional USS and TSS Themes
When adding a theme you will need to enter the Name of the new theme and select a Stylesheet (USS) OR a Unity Theme (TSS) asset, all stylesheets / theme files should be kept in a Resources folder, our default location is Resources/WindowFramework/Stylesheets
Available Window Settings
View on the Asset Store
Example Dynamic Window with No Content

Window above was created with code and no content.
This shows what the Window Framework actually gives you, a typical 'Window' that is movable and resizable, just needs content.
WindowID
The Window Id is used for window memory features. Combine with the ParentObjectId to generate unique instances of custom types.
ParentObjectID
Used to link a window frame to a in game object such as a treasure chests inventory window
Name
Optional name for the window
Title
Text displayed in the header (when header is shown)
WindowFramePosition
Initial opening position of window, if movement is allowed and memory enabled then the memory location will override this after initial open.
WindowMemoryEnabled
Enables location and size memory for the window
Fullscreen
Forces the window to fill the screen, useful for startup or escape key menus
MinWidth
Optionally specify a minimum width for the window
MinHeight
Optionally specify a minimum height for the window
DefaultWidth
Default starting width for the window
DefaultHeight
Default starting height of the window
ShowHeader
Optionally show the header
(required true to allow moving the window)
ShowFooter
Optionally show the footer
(required true to allow resizing the window)
AllowResize
Can the window be resized
(requires footer to be visible)
AllowMove
Can the window me moved on screen
(requires header to be visible)
AllowLock
Can the player lock/unlock the window placement and size
Locked
Is the window currently locked
(Locking a window with allow lock false creates an immutable window that is controlled by code only, our demo scene uses one for the directions)
Content
Container for your custom content. Since this is a framework and not a managed UI, you will need to create functional content to display within the window frames content section, just like a frame from the store, you must supply the picture to show.
FooterToolbar
Additional content area that can hold more custom content. Banking toolbar, stats system, etc... whatever additional information you want to display.
OptionsMenuTooltip
Optional tooltip assignemnt for the options menu
ResizeAreaTooltip
Optional tooltip assignemnt for the resize area
Common Questions
Window Framework for UI Toolkit - Project Setup Demo
WindowFrameController
and it will reload all windows that were open when the game was closed. We have a video that will walk you through the configuration and requirments for use. You can view that video here:Window Framework for UI Toolkit - Adding Window Memory and Content
Window Framework for UI Toolkit - Using UXML as Content
Per Unity staff: Assign the camera to a render texture, and use the renderTexture as the visual element’s background image, you can read the full discussion here:
https://discussions.unity.com/t/show-camera-view-in-ui/906399