{{docsMenuData.data.title}}

Window Framework for Unity UI Toolkit v1.2.0

View on the Asset Store

Available soon as a Unity Asset Bundle with our new Input Rebinder
Create advanced runtime UI windows in Unity 6 using UI Toolkit with drag, resize, full UI theming, memory, and compatible with UI Builder.

Window Framework for UI TOolkit example windows and settings

Download a Compiled Runtime Demo of v1.2.0

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.

runtime window examples

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 while retaining all bound field settings.

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. Include optional Full screen mode for individual windows with lock and restriction abilities from code.
AllowResize=<bool>, Locked=<bool>, Fullscreen=<bool>, Fullscreen=<bool>, AllowFullscreen=<bool>, LockFullscreen=<bool>

window framework editor based theme manager window

Runtime Window with Size, Location, Theme and Settings 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. We have also included 6 starter themes that work at Runtime and in UI Builder.

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! And by using our recommended file linking layout you can apply advanced themes that work in both your Runtime environment and in UI Builder so you can test your windows without entering Play Mode and is setup with USS variables for simple reuse of styling options

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. You can also apply the theme to all existing panels in a scene so any new elements using the new Worldspace panels will also have access to the style settings

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 with all Visual Elements, the Runtime Contextual Menus also have their own styling areas so you can adjust the look and feel of your menus to match your project. To further customize the system, the players can adjust the Fade Delay and Fade Time of menus.

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 manipulator does the rest and players has the options for 4 Fade Type's (FadeIn, FadeOut, FadeInAndOut, None), Show delay, Fade delay and Fade time.

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 included settings sections are also Custom Controls, this means that you can use and place them in your UXML documents directly in UI Builder

Runtime tooltip example on a game ui window

UI Builder Compatible

Place and add content to windows in UI Builder! the Demo show here is 9 windows placed using UI Builder and taking advantage of the StartPosition and LockToStartPosition options so the windows stay in place even when the screen is resized. And since the WindowFramework works with UI Builder you can drag and drop additional elements into your windows! We have also included this as an additional Demo Scene so you can see it in action.

window framework editor based theme manager window

Editor Based Theme Manager Window

The Editor based theme manager allows you to create and manage theme data files. Themes have a Name, example image, and a brief description. We will be expanding this window to allow for theme creations and other management features in future releases.

Runtime tooltip example on a game ui window

Runtime Window Debugger 

New Editor Based Runtime Debugging window for the controller that shows all current settings along with a list of active windows with options to bring to front or close the instance along with all of the setting option values on the window in realtime.

window framework editor based theme manager window

Editor Based Theme Manager Window

The Editor based theme manager allows you to create and manage theme data files. Themes have a Name, example image, and a brief description. We will be expanding this window to allow for theme creations and other management features in future releases.

The Window Frame Controller
View on the Asset Store

Inspector view of controller for the Window Framework for Unity UI Toolkit
UI Document (optional)

The controller will attempt to find the attached UI document component as it is a required component, however it is also available here for manual assignment in case you have issues with scene changes.

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.

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.

Default USS Style sheet

The default stylesheet is used when no theme data is available, that is the only time that this file is every called and can safely be ignored, however it is useful in dev builds that have changing file structures as you can make an error theme to offer quick obvious feedback on any problems. This is also a perfectly viable choice for a single theme project and can be a assigned to a Theme Stylesheet or Standard Stylesheet.

Global Theme or Style Sheet

The Global Stylesheet can also be a Stylesheet (USS) OR a Unity Theme Stylesheet (TSS) asset, all Global stylesheets / theme files should be kept in a Resources folder, our default recommended location is Assets/Resources/[Your-Project-Name]/Themes/Global but any resources that fits your project structure will work. This recommended theme folder is also where we recommend you save any custom themes you make so that asset updates do not effect your project.

Global Load Order

In the USS system applies in a cascading format, this means that the order in which you load your files mater. This setting allows you to set a shared ThemeStylesheet or standard Stylesheet to load first or last.

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. 

Theme Application Method

Themes can be applied to Windows, The Panel assigned to the controller, or All active panels in the scene. When the system applies the style sheets from the theme it removes the sheets related to the previous theme. This means that you can add additional stylesheets without the Window Framework Theme System effecting them.

Adding Additional Themes

When adding a theme you will need to enter the Name of the new theme and select a primary Unity Theme Stylesheet (TSS) asset, all stylesheets / theme files should be kept in a Resources folder, our default recommended location is Assets/Resources/[Your-Project-Name]/Themes/[New-Theme-Name] but any resources that fits your project structure will work. This recommended theme folder allows you save any custom themes you make so that asset updates do not effect your project.