with one click
unity-ui-toolkit
Unity UI Toolkit
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Unity UI Toolkit
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Unity ScriptableObject Architecture
Unity Shaders
Unity State Machines
Registers new C# files in resources/manifests/<system>.json (files array + tests.editmode/playmode list) and validates with just validate-registry. Use when creating any new script, adding a new game system, or fixing 'orphan file' CI failures. Trigger phrases: 'add to manifest', 'register file', 'new system', 'validate registry'. Key capabilities: exact JSON manifest format, ACTIVE/DEPRECATED/EXPERIMENTAL status, dependency declarations, test class name mapping for pre-push gating via resolve_module_tests.py. Do NOT use for modifying physics logic or editing game scripts unrelated to registration.
Unity Terrain & Track Creation for RC Racing
Unity Testing, Debugging & QA
| name | unity-ui-toolkit |
| description | Unity UI Toolkit |
Use this skill when building UI with Unity's UI Toolkit system, including UXML structure, USS styling, C# bindings, custom inspectors, or runtime game UI panels.
| Use Case | Recommended System |
|---|---|
| Menus, settings, HUD overlays | UI Toolkit — cleaner styling, better tooling |
| World-space UI (health bars above enemies) | UGUI — native 3D canvas support |
| Complex runtime animations on UI | UGUI — more mature DOTween/animation integration |
| Editor custom inspectors and windows | UI Toolkit — this is the primary target |
| Data-heavy lists (inventory, leaderboards) | UI Toolkit — virtualized ListView |
Attach to a GameObject to display UI Toolkit content at runtime:
Create via Assets > Create > UI Toolkit > Panel Settings Asset:
Multiple UIDocuments can share one PanelSettings (same render panel) or use separate ones (independent panels).
public class ThemeManager : MonoBehaviour
{
[SerializeField] private PanelSettings panelSettings;
[SerializeField] private ThemeStyleSheet lightTheme;
[SerializeField] private ThemeStyleSheet darkTheme;
public void SetDarkMode(bool dark)
{
panelSettings.themeStyleSheet = dark ? darkTheme : lightTheme;
}
}
Alternatively, swap USS variables at runtime:
// Override a custom property on the root
var root = uiDocument.rootVisualElement;
root.style.SetCustomProperty("--bg-primary", new StyleColor(Color.black));
// Experimental animation API
element.experimental.animation
.Start(new StyleValues { opacity = 0, top = -50 },
new StyleValues { opacity = 1, top = 0 },
300)
.Ease(Easing.OutCubic)
.OnCompleted(() => Debug.Log("Animation done"));
Open via Window > UI Toolkit > Debugger:
This is the most powerful tool for debugging layout issues. Use it before guessing at USS changes.