addressables-design
Source-anchored design rules for Unity Addressables 1.22.3/2.9.1
Advise on Unity gameplay and system architecture
Claude Code
$ npx -y skills add Besty0728/Unity-Skills --skill architecture --agent claude-code
Codex
$ npx skills add Besty0728/Unity-Skills --skill architecture -a codex -y
Cursor
$ npx skills add Besty0728/Unity-Skills --skill architecture -a cursor -y
Gemini CLI
$ npx skills add Besty0728/Unity-Skills --skill architecture -a gemini-cli -y
GitHub Copilot
$ npx skills add Besty0728/Unity-Skills --skill architecture -a github-copilot -y
OpenCode
$ npx skills add Besty0728/Unity-Skills --skill architecture -a opencode -y
Windsurf
$ npx skills add Besty0728/Unity-Skills --skill architecture -a windsurf -y
name: unity-architecture description: Advise on Unity gameplay and system architecture
Documentation only: no REST skills. Use before generating many gameplay scripts or when the user asks for a cleaner architecture.
1. Identify scope: prototype, small game, or long-lived project. 2. Define the core loop and the minimum runtime systems needed. 3. Recommend the smallest architecture that fits the scope. 4. Separate: scene/bootstrap layer, gameplay/domain logic, data/config assets, view/presentation layer. 5. Call out what should stay simple now and what is worth abstracting.
Most "random" gameplay bugs trace back to two silent assumptions: that scripts run in a predictable order, and that `Update` runs only when its data is ready. Neither holds unless you make it so.
Do not rely on Script Execution Order panels or accidental `Awake` ordering. In order of preference:
The ECS analogue, `[UpdateBefore(typeof(BarSystem))]` / `[UpdateAfter]`, works because the framework validates contradictions at sort time. MonoBehaviour code gets no such check, so be conservative. *Source: `EntitiesSamples/Docs/systems.md:32`: "if the ordering attributes of a group's children create a contradiction, an exception is thrown".*
Every `Update` / `LateUpdate` / `FixedUpdate` should open with guard clauses that return early when the system is not ready. Cheapest check first:
void Update() {
if (!_isInitialized) return; // construction-time
if (_dataSource == null) return; // dependency-level
if (_paused) return; // gameplay-state
// real work here
}A missing guard separates "doesn't run yet" (safe) from "runs with stale or null data and silently corrupts state" (a debugging nightmare). The ECS equivalent is `state.RequireForUpdate<Config>()` in `OnCreate`, which turns the precondition into a system-level invariant. *Source: `Dots101/Entities101/Assets/HelloCube/3. Prefabs/SpawnSystem.cs:17-19`.*
REST API-based AI-driven Unity Editor Automation Engine Let AI control Unity scenes directly through Skills 🎉 We are now indexed by DeepWiki! Got questions? Check out the AI-generated docs → The current official maintenance baseline is Unity 2022.3+.
Source-anchored design rules for Unity Addressables 1.22.3/2.9.1
Manage Addressables groups, entries, profiles and content builds (com.unity.addressables, reflection-based)
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.