View on Asset Store (opens in new tab)
Package details
- Latest version
- 3.0.0
- Last updated
- First released
- Unity version
- 2022.3.62 or later
- Package size
- 164 KB
- Files
- 181
- Favorites
- 1
- Views in the past week
- 7
Price tracking
- Last checked
- Tracked since
- Lowest recorded
- $10.50 on
Keywords
UITK Typed UXML
TypedUxml generates strongly typed C# classes from your Unity UI Toolkit UXML files - no more string queries, no more runtime surprises.
Affiliate link · Purchases support this site
Price history
Last 6 months
USDAsset preview
1 / 5
UITK Typed UXML screenshot 1
About this asset
Why TypedUxml?
Standard UI Toolkit code queries elements by string name. Typos compile cleanly, refactoring can break silently, and errors often surface only when the UI is already running.
TypedUxml replaces string-based lookups with generated, compile-time-safe properties. You get full IntelliSense, type checking, nullable annotations, and predictable generated code for every named UXML element.
TypedUxml supports both modern [UxmlElement] controls and legacy custom controls built with UxmlFactory and UxmlTraits, making it suitable for Unity 2022.3 LTS and Unity 6 projects.
Key Features
- Auto-generated typed partial classes for UXML files, updated on save
- Live Preview Panel for inspecting generated code before writing it to disk
- Typed properties for named elements, duplicate-name collections, slots, nested templates, and custom controls
- Support for [UxmlElement] as well as UxmlFactory and UxmlTraits
- Optional TryGet* helpers with [NotNullWhen(true)]
- Optional static factory methods: FromVisualTree, LoadFromAssetDatabase, LoadFromResources, and Addressables loading
- Optional partial hooks: OnBeforeAssign and OnAfterAssign
- Optional constants for UXML names and USS classes
- Smart incremental cache that regenerates only changed UXML, USS, or configuration inputs
- Global configuration through Project Settings with per-file JSON overrides
- No dependency on Newtonsoft.Json
- Demo scene available as an optional Package Manager sample
Getting Started
- Install the package through the Unity Package Manager
- Open Window → UI Toolkit → TypedUxml Preview
- Select any .uxml file in the Project window — the preview updates instantly
- Save the file to generate automatically, or click Generate in the panel
- Optionally import the demo scene from the package’s Samples tab
Full documentation is included: Installation, Quick Start, Preview Panel, Configuration, API Reference, Examples, Troubleshooting, and Changelog.
From the publisher's Asset Store listing.
Technical details
Generated Code
Each UXML file produces a partial C# class with get-only typed properties for named elements. Duplicate names generate IReadOnlyList<T> collection properties.
Template instances can expose both the underlying TemplateContainer and a typed wrapper for the nested UXML view.
Depending on configuration, generated classes can also include:
- Nullable properties
- TryGet* helpers with [NotNullWhen(true)]
- UXML name and USS class constants
- Static factory and loading methods
- Partial generation hooks
- Custom base classes and constructor presets
- Advanced query expressions
Custom Controls
TypedUxml supports both generations of the UI Toolkit custom-control API:
- [UxmlElement] and [UxmlAttribute]
- Legacy UxmlFactory and UxmlTraits
Custom control types are resolved through their XML namespace declarations. Template view properties are resolved through known UXML output bindings and path-based namespace rules.
Configuration
Global settings are stored in:
ProjectSettings/TypedUxml/typeduxml.config.json
They can be edited through Edit → Project Settings → TypedUxml.
When the Project Settings configuration is missing, TypedUxml can read the legacy configuration from:
Assets/TypedUxml/typeduxml.config.json
The legacy configuration is migrated automatically during initialization.
Per-file overrides can be placed next to a UXML file using the following naming format:
{File}.uxml.config.json
Available settings include nullable properties, TryGet* generation, name and USS constants, base class, constructor preset, static methods, partial hooks, namespace rules, output class and namespace overrides, and advanced query expressions.
Generation and Integration
Generation runs automatically through an asset postprocessor whenever relevant UXML files are saved.
Manual generation is available from:
- The TypedUxml Preview Panel
- Assets → TypedUxml → Generate Class
- Tools → TypedUxml → Regenerate Selected UXML
The incremental cache tracks changes to UXML, USS, and configuration inputs so that only affected files are regenerated.
Cache data is stored in:
ProjectSettings/TypedUxml/typeduxml.cache.json
The cache can be reset through Tools → TypedUxml → Clear Cache.
Namespace Resolution
Generated namespaces are built using rootNamespace, the folder path relative to namespacePathAnchor, and namespacePathMode.
A local outputNamespace override can replace the generated namespace for a specific UXML file.
Package Format and Samples
TypedUxml is distributed as a UPM package and is installed under the project’s Packages directory.
The demo scene and supporting demo assets are provided as an optional Package Manager sample. They are not imported into the project automatically.
Compatibility
- Unity 2022.3.62 or newer, including Unity 6.0+
- Unity UI Toolkit (built-in)
The same package supports both Unity version families. No separate Unity 6 package is required.
Compatibility
| Unity version | Built-in | URP | HDRP | Custom |
|---|---|---|---|---|
| 2022.3.62f3 | Compatible | Compatible | Compatible | Compatible |
As listed on the Asset Store.