assembly-definitions
Assembly definition management — when to create asmdefs, reference rules, Editor/Runtime/Test separation, platform filters, compilation speed optimization.
UI Toolkit — UXML document structure, USS styling (CSS-like), UQuery, data binding, ListView virtualization, custom visual elements.
$ npx -y skills add XeldarAlz/everything-claude-unity --skill ui-toolkit --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/ui-toolkitContext preview
The summary Claude sees to decide when to auto-load this skill.
UI Toolkit — UXML document structure, USS styling (CSS-like), UQuery, data binding, ListView virtualization, custom visual elements.
name: ui-toolkit description: "UI Toolkit — UXML document structure, USS styling (CSS-like), UQuery, data binding, ListView virtualization, custom visual elements." globs: ["**/*.uxml", "**/*.uss", "**/UIDocument*"]
<ui:UXML xmlns:ui="UnityEngine.UIElements">
<ui:Style src="styles.uss" />
<ui:VisualElement class="screen">
<ui:Label text="Game Title" class="title" />
<ui:VisualElement class="button-container">
<ui:Button text="Play" name="btn-play" class="menu-btn" />
<ui:Button text="Settings" name="btn-settings" class="menu-btn" />
<ui:Button text="Quit" name="btn-quit" class="menu-btn danger" />
</ui:VisualElement>
<ui:Slider label="Volume" name="volume-slider" low-value="0" high-value="1" value="0.8" />
<ui:Toggle label="Fullscreen" name="fullscreen-toggle" />
</ui:VisualElement>
</ui:UXML>.screen {
flex-grow: 1;
align-items: center;
justify-content: center;
background-color: rgba(0, 0, 0, 0.8);
}
.title {
font-size: 48px;
color: white;
-unity-font-style: bold;
margin-bottom: 40px;
}
.menu-btn {
width: 250px;
height: 50px;
margin: 8px;
font-size: 20px;
background-color: rgb(60, 60, 60);
color: white;
border-radius: 8px;
border-width: 0;
transition-duration: 0.2s;
}
.menu-btn:hover {
background-color: rgb(80, 80, 80);
scale: 1.05;
}
.menu-btn:active {
background-color: rgb(40, 40, 40);
}
.danger {
color: rgb(255, 100, 100);
}public sealed class MainMenuController : MonoBehaviour
{
[SerializeField] private UIDocument _document;
private void OnEnable()
{
VisualElement root = _document.rootVisualElement;
root.Q<Button>("btn-play").clicked += OnPlayClicked;
root.Q<Button>("btn-settings").clicked += OnSettingsClicked;
root.Q<Button>("btn-quit").clicked += OnQuitClicked;
Slider volumeSlider = root.Q<Slider>("volume-slider");
volumeSlider.RegisterValueChangedCallback(evt => OnVolumeChanged(evt.newValue));
}
private void OnPlayClicked() { /* Load game scene */ }
private void OnSettingsClicked() { /* Show settings panel */ }
private void OnQuitClicked() { Application.Quit(); }
private void OnVolumeChanged(float value) { /* Set audio volume */ }
}VisualElement root = _document.rootVisualElement;
// By name
Button playBtn = root.Q<Button>("btn-play");
// By class
var allButtons = root.Query<Button>(className: "menu-btn").ToList();
// By type
var allLabels = root.Query<Label>().ToList();
// Nested query
var containerBtns = root.Q("button-container").Query<Button>().ToList();ListView listView = root.Q<ListView>("inventory-list");
listView.makeItem = () => new Label(); // Create UI element
listView.bindItem = (element, index) =>
{
((Label)element).text = _items[index].Name;
};
listView.itemsSource = _items;
listView.fixedItemHeight = 40;
listView.selectionType = SelectionType.Single;
listView.selectionChanged += OnSelectionChanged;public sealed class HealthBar : VisualElement
{
private VisualElement _fill;
public float Value
{
set => _fill.style.width = new Length(value * 100f, LengthUnit.Percent);
}
public HealthBar()
{
AddToClassList("health-bar");
_fill = new VisualElement();
_fill.AddToClassList("health-fill");
Add(_fill);
}
// Required for UXML instantiation
public new sealed class UxmlFactory : UxmlFactory<HealthBar> { }
}// Register callbacks
element.RegisterCallback<ClickEvent>(evt => { });
element.RegisterCallback<PointerEnterEvent>(evt => { });
element.RegisterCallback<KeyDownEvent>(evt => { });
// Unregister
element.UnregisterCallback<ClickEvent>(handler);The ultimate Claude Code toolkit for Unity game development. A production-ready, plug-and-play system that gives Claude Code deep Unity expertise — from writing performant C# to building scenes, profiling performance, and triggering iOS/Android builds — all
Assembly definition management — when to create asmdefs, reference rules, Editor/Runtime/Test separation, platform filters, compilation speed optimization.
Structured commit trailers — adds Constraint, Rejected, Scope-risk, and Not-tested metadata to commit messages. Captures architectural decisions and known gaps…
Ambiguity gating — detects vague feature requests and forces structured requirements gathering with scoring across scope, platform, performance, integration,…
Event system patterns — C# events, UnityEvent, SO event channels, static EventBus. When to use each, zero-allocation patterns, memory leak prevention.
Configures Claude Code's statusline to display Unity workflow state — current phase, active agent, files modified, and session duration.
Post-debugging knowledge extraction — captures non-obvious, codebase-specific learnings that pass quality gates. Invoke after resolving tricky bugs or…