{{docsMenuData.data.title}}

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 -

Window Framework Demo Scene

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

Resizing ui windows example

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 examples

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.

uss theme and uss style sheet examples

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 USS Style Sheet themes

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!

Runtime context menu example on a runtim window

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 example on a game ui window

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

window framework runtime starter settings window

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

Inspector view of controller for the Window Framework for Unity UI Toolkit

Available Window Settings
View on the Asset Store

code example for unity ui toolkit uxml attributes
Example Dynamic Window with No Content
example runtime 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

Setup is very easy, we have a video that show you how to do it in less than 10 minutes, you can view that video here:
Window Framework for UI Toolkit - Project Setup Demo
Not at all, our window reloading system is designed to be as simple as possible, all you have to do is call a method in the 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
You sure can! Window Framework for UI Toolkit is designed to work with Unity's UI Builder, so you can create your content in the UI Builder and then use it in your windows. We have a video that will walk you through the process of creating content in UI Builder and using it in your windowsframes. You can view that video here:
Window Framework for UI Toolkit - Using UXML as Content
Yes, you can render a camera view as window content. The Window Framework for UI Toolkit does not have built in support for this, but it is possible to do with Unity's Render Texture system. You can create a render texture and assign it to a camera, then use that render texture as the background image of a visual element in your window content. This allows you to display the camera view in your window just like any other 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
Yes, you can use Unity's Theme assets (TSS) as your StyleSheets. Since TSS files are treated the same as a USS files, they can be used in the WIndowFramework!