I've been trying to get AI coding assistants to stop writing bad Unity architecture, and I think I've gotten somewhere. Curious how others handle this.
The problem: every time I use Claude Code or Cursor for Unity, the generated code defaults to singletons, god-class managers, tightly coupled everything. It compiles fine, The AI produces code that "works", but creates an architectural mess.
So I wrote a skill for it. Five docs that teach the agent how to think about Unity architecture before it touches code. The core of it is ScriptableObject-driven communication: event channels, runtime sets, scriptable variables. If you've seen Ryan Hipple's Unite 2017 talk on game architecture with ScriptableObjects, it's that philosophy, but codified as instructions an AI agent can follow consistently.
On top of that, every system (inventory, combat, health, dialogue, etc.) gets structured as its own UPM package with assembly definitions and proper versioning. I also baked in some personal preferences like composition over inheritance, Unity 6+ / C# 11 patterns, and test assembly setup, because I got tired of fixing those by hand every time.
Works with Claude Code, Cursor, Copilot, and any agent that supports the SKILL.md standard:
GitHub: https://github.com/eyenpi/unity-systems-skills
Even if you are not into AI-assisted development, you can just read the documents and write what you think about this architecture. I care a lot about my projects' structure, so I'd love to hear how others reliably make these systems.
