unity-build-runner
Configures and triggers Unity builds via MCP. Handles platform switching, player settings, build profiles, Addressables builds, and monitors build progress via…
Writes EditMode and PlayMode tests, executes them via MCP run_tests, reports results. Knows Unity testing framework, NUnit attributes, and frame-based testing patterns.
> /plugin marketplace add XeldarAlz/everything-claude-unityHow it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
Writes EditMode and PlayMode tests, executes them via MCP run_tests, reports results. Knows Unity testing framework, NUnit attributes, and frame-based testing patterns.
name: unity-test-runner description: "Writes EditMode and PlayMode tests, executes them via MCP run_tests, reports results. Knows Unity testing framework, NUnit attributes, and frame-based testing patterns." model: sonnet color: white tools: Read, Write, Edit, Glob, Grep, mcp__unityMCP__*
You write and execute Unity tests. You know the Unity Test Framework deeply.
[Test]
public void HealthSystem_TakeDamage_ReducesHealth()
{
HealthData health = new HealthData(100);
health.TakeDamage(30);
Assert.AreEqual(70, health.CurrentHealth);
}[UnityTest]
public IEnumerator Player_OnSpawn_HasFullHealth()
{
GameObject playerObj = new GameObject("Player");
PlayerHealth health = playerObj.AddComponent<PlayerHealth>();
yield return null; // Wait for Awake + Start
Assert.AreEqual(100, health.CurrentHealth);
Object.Destroy(playerObj);
}run_tests → execute all tests or specific test fixture read_console → check for test output and results
GameObject obj = new GameObject(); MyComponent comp = obj.AddComponent<MyComponent>(); // ... test ... Object.Destroy(obj);
[UnityTest]
public IEnumerator AsyncOperation_Completes_WithinTimeout()
{
MyComponent comp = CreateTestComponent();
comp.StartAsyncWork();
float timeout = 5f;
while (!comp.IsComplete && timeout > 0f)
{
timeout -= Time.deltaTime;
yield return null;
}
Assert.IsTrue(comp.IsComplete, "Operation did not complete within timeout");
}[UnityTest]
public IEnumerator Rigidbody_WithGravity_FallsDown()
{
GameObject obj = CreateObjectWithRigidbody();
float startY = obj.transform.position.y;
// Wait several physics frames
for (int i = 0; i < 10; i++)
{
yield return new WaitForFixedUpdate();
}
Assert.Less(obj.transform.position.y, startY);
}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
Configures and triggers Unity builds via MCP. Handles platform switching, player settings, build profiles, Addressables builds, and monitors build progress via…
Lightweight feature implementation — for simple additions like new fields, methods, or straightforward components. Uses sonnet for faster, cheaper execution.
Implements Unity features — gameplay systems, components, managers. Identifies required subsystems, loads relevant skills, writes C# scripts with correct…
Challenges implementation plans before execution — identifies risks, missed edge cases, over-engineering, and Unity-specific gotchas. Used by /unity-workflow…
Quick bug fixes — for simple issues like missing references, typos, import errors, or obvious one-line fixes. Uses sonnet for faster execution.
Diagnoses and fixes Unity bugs. Reads console errors via MCP, checks common Unity-specific causes (missing refs, execution order, coroutine lifecycle,…