CLAUDE LABJP
NEST — Subagents can now spawn nested subagents up to depth 3 by default, up from 1, making research/build/verify pipelines practical without extra setupAPISKILL — The bundled claude-api skill now defaults to Claude Opus 5, with a documented migration path from Opus 4.8ENVVAR — ${VAR} entries in managed MCP allowlists and denylists now resolve from the startup environment and managed-settings env, not the settings-file envA11Y — A screen reader mode lets you follow a session with assistive tech, including announcements of deleted textVOICE — Voice mode now runs on Opus, Sonnet, and Haiku alike, reaches connected tools like Gmail and Slack, and supports many more languagesTEACH — Claude for Teachers launched on July 14, alongside a $10M commitment to Canadian AI researchNEST — Subagents can now spawn nested subagents up to depth 3 by default, up from 1, making research/build/verify pipelines practical without extra setupAPISKILL — The bundled claude-api skill now defaults to Claude Opus 5, with a documented migration path from Opus 4.8ENVVAR — ${VAR} entries in managed MCP allowlists and denylists now resolve from the startup environment and managed-settings env, not the settings-file envA11Y — A screen reader mode lets you follow a session with assistive tech, including announcements of deleted textVOICE — Voice mode now runs on Opus, Sonnet, and Haiku alike, reaches connected tools like Gmail and Slack, and supports many more languagesTEACH — Claude for Teachers launched on July 14, alongside a $10M commitment to Canadian AI research
Articles/Claude Code
Claude Code/2026-04-25Advanced

Claude Code for Unity Game Development: Practical

Hands-on guide to using Claude Code on real Unity projects: writing CLAUDE.md for Unity, the Unity MCP server, scene-aware C# generation, PlayMode tests, and build verification.

Claude Code203Unity3C#Game Development2MCP47

Premium Article

The longer I work in Unity, the more often I think "this would be faster if I just had Claude Code do it." But Unity isn't like web development. Scenes carry state. Asset import settings live outside source files. Build configuration is in .meta files no one wants to read. Claude Code alone hits a wall fast.

This guide collects the techniques I've actually shipped with — and the patterns I've seen burn through credits without producing working code — across several Unity 6 projects with Claude Code v2.

Why Claude Code lands well in Unity, when set up right

Unity development time breaks roughly into four buckets: scene composition, asset tuning, C# implementation, and build verification. C# implementation is the part that maps cleanly to AI-generated code. The same skill set that writes good TypeScript writes good Unity C#.

What makes Unity hard is that writing the script isn't enough. You still need the right GameObject hierarchy, the right SerializeField references wired up, the right Layer and Tag assignments. Code that compiles but isn't wired into the scene does nothing.

Claude Code only really pulls its weight in Unity once you bridge it to the editor itself with the Unity MCP server, which I'll cover below. Before that bridge exists, Unity work with Claude is half automated at best.

Writing CLAUDE.md for a Unity project

The first thing Claude Code reads on startup is CLAUDE.md. Here's an excerpt from the template I'm currently using:

# Project
 
Vertical-scroll action game on Unity 6.0.x.
Targets: iOS / Android (IL2CPP, ARM64).
Render pipeline: URP 17.x.
Input: Input System Package — do NOT use legacy Input Manager.
 
# Directory layout
 
- Assets/Scripts/Gameplay/ — gameplay logic, MonoBehaviours
- Assets/Scripts/Systems/ — persistence, save/load, audio
- Assets/Scripts/UI/ — UI Toolkit screens
- Assets/_Project/Prefabs/ — player, enemies, items
 
# Coding conventions
 
- using statements: alphabetical
- Private fields: _camelCase. Public: PascalCase
- async/await: UniTask (Cysharp). Bare Task is forbidden
- DOTween: always use SetLink for lifetime safety
- Prefer ScriptableObject for tunable values
 
# Tests
 
- PlayMode tests live in Tests/PlayMode/
- EditMode tests live in Tests/EditMode/
- NUnit + UnityEngine.TestTools assertions

The point is to block web-development assumptions from leaking in. Without "bare Task is forbidden," Claude will happily use await Task.Delay() — which, in Unity, doesn't track the MonoBehaviour lifecycle and keeps running after scene unload. That's a future bug factory.

Calling out URP and the Input System matters too. Skip them and you'll get URP-incompatible shaders and Input.GetKeyDown calls from the legacy input system.

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
How to write a CLAUDE.md tailored to a Unity project's structure and conventions
Automating scene operations with the Unity MCP server
An end-to-end loop: Claude generates code, runs PlayMode tests, and verifies builds
Secure payment via Stripe · Cancel anytime

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Claude Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $10 for lifetime access
View Membership →

Related Articles

Claude Code2026-03-10
Unity × Claude Code Game Dev Guide — Building AI-Driven Workflows with MCP
Learn to accelerate game development with Unity MCP and Claude Code. Covers scene building, asset management, script generation, and debugging with AI-driven workflows.
Claude Code2026-07-18
The MCP Server I Declared Vanished from the List — Designing Config for a Namespace You Share with the Vendor
When a vendor reserves an MCP server name, your .mcp.json declaration goes quiet instead of failing. Here is the preflight check and prefix convention I use to turn that silent gap into a loud stop before an unattended run.
Claude Code2026-07-16
The Permission Rules You Added for Safety Are Taxing Every Turn — Auditing the Ruleset Without Loosening It
Version 2.1.209 fixed the per-turn slowdown from large deny/ask rulesets, but the design debt in your rules is still yours. Here are the audit scripts, a shadowing detector, a turn-timing harness, and how to fold enumerated rules into prefix rules safely.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →