# Uw Unity Project Setup

> Full project initialization wizard from ProjectConfig, including folders, packages, Git, and MCP setup. Use when setting up a new Unity project from scratch, creating the folder structure, or bootstrapping infrastructure. Triggers on requests like "set up a new project", "create folder structure", "initialize the project", or "/uw-cmd-setup-project". Reads ProjectConfig.yaml for all decisions.

- Skill: `idocohen560/uw-unity-project-setup` (Agent Skill)
- Install (CLI): `npx skillmds@latest add idocohen560/uw-unity-project-setup`
- Raw SKILL.md: https://api.skillmd.com/api/skills/idocohen560/uw-unity-project-setup/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: IdoCohen560 (https://skillmd.com/u/idocohen560)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/idocohen560/uw-unity-project-setup

---


# Unity Project Setup

Orchestrate complete project initialization from `ProjectConfig.yaml`.

## Before You Start
1. Ensure `docs/ProjectConfig.yaml` is filled out.
2. Unity project must be created and open in Editor.
3. Check which MCP servers are available (Unity MCP for in-editor operations, GitHub for version control).

## Steps (in order)

### 1. Verify ProjectConfig
Confirm Unity version, packages, folder strategy, networking choice.

**Required fields** — warn the user if any are missing or empty:
- `project_name`
- `unity_version`
- `render_pipeline`
- `scripting_backend`
- `folder_strategy`

### 2. Create Folder Structure
Based on `folder_strategy`, create `Assets/_Project/` with standard subfolders:
- `Core/Scripts/` + `Core.asmdef`
- `Core/Tests/EditMode/` + `Core.Tests.EditMode.asmdef` (so the test runner skill has a test assembly from day one)
- `Features/` or `Scripts/` (depending on strategy)
- `Art/`, `Audio/`, `UI/`, `Prefabs/`, `Scenes/`, `Tests/`

### 3. Install Packages
From `ProjectConfig.yaml → packages`, install via Unity MCP `manage_packages` if available.

**Manual fallback (no MCP):** Write an editor script (`Editor/Setup/PackageInstaller.cs`) using `UnityEditor.PackageManager.Client.Add()` to install packages programmatically. The user runs it once from the Unity menu, then it can be deleted.

### 4. Generate Core Utilities
- **GameDebug.cs** via `uw-unity-debugging` skill
- Add `ENABLE_LOGS` define for Development builds

### 5. Git Setup
- Create `.gitignore` (Unity template)
- Create `develop` branch
- Initial commit
- Use GitHub MCP if available, otherwise git CLI

### 6. Configure Editor
Via Unity MCP if available:
- Render pipeline, color space (Linear), scripting backend (IL2CPP)

**Manual fallback (no MCP):** Write an editor script (`Editor/Setup/ProjectConfigurator.cs`) using `PlayerSettings` and `GraphicsSettings` APIs to set render pipeline, color space, scripting backend, and target platforms. Menu item under `Tools > Project Setup > Apply Settings`.

### 7. Documentation Setup
- Copy template files from `templates/` → `docs/`
- Ensure GDD, TDD, GFD, PRD, SprintPlan are ready to be filled
- If `ProjectConfig.yaml → prompt_logging: true`, create `docs/PromptLog.md`

### 8. Report MCP Status
```
✅ Unity MCP — Connected
✅ GitHub MCP — Connected
⬜ Linear MCP — Not configured
```

## Conditional Setup

After core setup, check ProjectConfig for features that need additional skill guidance:

| ProjectConfig Field | Condition | Action |
|---|---|---|
| `architecture_pattern` | `di-first` | Reference `uw-dependency-injection` skill for Reflex container setup |
| `networking` | not `none` | Reference `uw-network-setup` skill for networking boilerplate |
| `feel_tools` | any non-`none` value | Reference `uw-game-feel-integrator` skill for middleware integration |
| `ui_system` | `UIToolkit` or `Mixed` | Reference `uw-ui-toolkit-binder` skill for data binding setup |

Mention these as next steps — don't execute them during project setup.

## Asset Loading Strategy

| Approach | When to Use |
|----------|-------------|
| **Direct references** | Prefabs/SOs referenced in Inspector — always loads with scene |
| **Resources/** | Small-scale or early development. Loads synchronously. Everything in Resources/ ships in build. |
| **Addressables** | Production default. Async loading, memory management, optional remote hosting. Install `com.unity.addressables`. |
| **AssetBundles** | Advanced/custom CDN pipelines. Addressables wraps this — prefer Addressables unless you need low-level control. |

For persistent data: encrypt PlayerPrefs values at minimum. For production, prefer server-side storage with authentication.

## Rules
- **Never** create folders inside `Assets/` without `_Project/` prefix.
- Use `uw-unity-feature-scaffold` for feature modules.
- Use `Resources/` sparingly — prefer Addressables for production.

