Permissions
This skill requires broad tool access for its automation workflows. The .claude/settings.json has been pre-configured with the minimum necessary permissions. A SessionStart hook ensures the environment is properly initialized.
Unity Level Design
Overview
Rapidly prototype Unity game scenes using Editor automation, modern Unity APIs, and best practices for level design. This skill automates terrain generation, lighting setup, environment placement, and player controller creation to get you implementing gameplay ideas quickly.
When to Use
Use this skill when:
- Creating prototype scenes (post-apocalypse, fantasy, sci-fi, dungeon crawler, etc.)
- Setting up Unity terrain, meshes, and ground geometry
- Automating lighting, post-processing, and environment setup
- Building player controllers and basic gameplay systems
- Need to go from concept to playable scene rapidly
Core Workflow
Step 1: Research Current APIs
Before implementing, check Unity's latest APIs and best practices:
Modern Unity Systems:
- Terrain Tools package (GPU-accelerated sculpting)
- Universal Render Pipeline (URP) or High Definition Render Pipeline (HDRP)
- DOTS/ECS for performance-critical scenarios
- Shader Graph for custom materials
- VFX Graph for particle effects
Key APIs to reference:
UnityEngine.Terrain - Terrain manipulation
UnityEditor.TerrainTools - Editor terrain tools
UnityEngine.Rendering.Universal - URP components
UnityEditor.SceneManagement - Scene automation
Step 2: Scene Setup Automation
Use Editor scripts to automate repetitive setup:
// Example: Automated scene initialization
public static class SceneSetupHelper
{
[MenuItem("Level Design/Create Basic Scene")]
public static void CreateBasicScene()
{
// Setup lighting
SetupLighting();
// Create terrain
CreateTerrain();
// Setup post-processing
SetupPostProcessing();
// Create player
CreatePlayerController();
}
}
Step 3: Terrain Generation
Options:
- Unity Terrain - Best for natural landscapes
- Mesh Generation - Best for stylized/architectural
- Procedural Generation - Best for endless/replayable worlds
Step 4: Environment & Props
Automate placement of:
- Vegetation (trees, grass, rocks)
- Structures (buildings, ruins, dungeons)
- Lighting (sun, ambient, point lights)
- Effects (fog, particles, post-processing)
Step 5: Player & Gameplay
Create basic:
- Player controller (FPS, third-person, top-down)
- Camera setup
- Input handling
- Basic interactions
Scene Types
Post-Apocalyptic Scene
- Destroyed urban environment
- Ruined buildings and debris
- Overgrown vegetation
- Atmospheric fog and lighting
- Scattered resources/props
Fantasy Forest
- Dense woodland terrain
- Rivers and lakes
- Fantasy vegetation
- Magical lighting effects
- Pathways and clearings
Dungeon Crawler
- Procedural room generation
- Corridor systems
- Torch/candle lighting
- Traps and enemy spawners
- Loot chests
Quick Reference
| Task |
Method |
API/Tool |
| Create Terrain |
Editor script |
Terrain.CreateTerrainGameObject |
| Sculpt Terrain |
Noise/heightmaps |
TerrainData.SetHeights |
| Add Vegetation |
Tree/Grass painting |
TerrainData.treeInstances |
| Setup Lighting |
URP/HDRP |
UniversalAdditionalLightData |
| Post-Processing |
Volume components |
Volume + profiles |
| Player Controller |
Character Controller |
CharacterController component |
| Procedural Meshes |
Runtime generation |
Mesh class |
Editor Tools
See scripts/ for automation tools:
SceneSetupWizard.cs - One-click scene initialization
TerrainGenerator.cs - Procedural terrain creation
EnvironmentPainter.cs - Batch environment placement
LightingSetup.cs - Automated lighting configuration
References
See references/ for detailed documentation:
unity-apis.md - Current Unity API reference
terrain-tools.md - Terrain system documentation
urp-setup.md - Universal Render Pipeline guide
level-design-patterns.md - Best practices and patterns
Common Mistakes
- Wrong render pipeline: Check if project uses URP, HDRP, or Built-in RP
- Terrain scale: Unity terrain uses different height/length scales
- Lighting baking: Realtime GI can be slow; use baked lighting for static geometry
- Performance: Too many trees/colliders will kill performance
- Scale consistency: Keep player, environment, and props to consistent scale
Example Usage
// Create a post-apocalyptic scene
[MenuItem("Level Design/Post-Apocalyptic Scene")]
static void CreatePostApocalypticScene()
{
// 1. Create terrain with noise
var terrain = TerrainGenerator.CreateRuinedTerrain();
// 2. Setup dramatic lighting
LightingSetup.CreateDramaticLighting(Color.gray * 0.3f);
// 3. Add fog and post-processing
PostProcessingSetup.CreateAtmosphericFog();
// 4. Scatter debris and props
EnvironmentPainter.ScatterDebris(50);
// 5. Create player
var player = PlayerSetup.CreateFPSPlayer();
player.transform.position = new Vector3(0, 5, 0);
}
1---2name: unity-level-design3description: Use when creating Unity game scenes and prototypes, building level designs, or automating Unity Editor workflows for terrain, lighting, environment setup, and player controllers. Use for post-apocalyptic scenes, fantasy forests, dungeon crawlers, and other game environments that need rapid prototyping.4---5
6## Permissions
7
8This skill requires broad tool access for its automation workflows. The `.claude/settings.json` has been pre-configured with the minimum necessary permissions. A SessionStart hook ensures the environment is properly initialized.
9
10# Unity Level Design
11
12## Overview
13
14Rapidly prototype Unity game scenes using Editor automation, modern Unity APIs, and best practices for level design. This skill automates terrain generation, lighting setup, environment placement, and player controller creation to get you implementing gameplay ideas quickly.
15
16## When to Use
17
18Use this skill when:
19- Creating prototype scenes (post-apocalypse, fantasy, sci-fi, dungeon crawler, etc.)
20- Setting up Unity terrain, meshes, and ground geometry
21- Automating lighting, post-processing, and environment setup
22- Building player controllers and basic gameplay systems
23- Need to go from concept to playable scene rapidly
24
25## Core Workflow
26
27### Step 1: Research Current APIs
28
29Before implementing, check Unity's latest APIs and best practices:
30
31**Modern Unity Systems:**
32- Terrain Tools package (GPU-accelerated sculpting)
33- Universal Render Pipeline (URP) or High Definition Render Pipeline (HDRP)
34- DOTS/ECS for performance-critical scenarios
35- Shader Graph for custom materials
36- VFX Graph for particle effects
37
38**Key APIs to reference:**
39- `UnityEngine.Terrain` - Terrain manipulation
40- `UnityEditor.TerrainTools` - Editor terrain tools
41- `UnityEngine.Rendering.Universal` - URP components
42- `UnityEditor.SceneManagement` - Scene automation
43
44### Step 2: Scene Setup Automation
45
46Use Editor scripts to automate repetitive setup:
47
48```csharp
49// Example: Automated scene initialization
50public static class SceneSetupHelper
51{
52 [MenuItem("Level Design/Create Basic Scene")]
53 public static void CreateBasicScene()
54 {
55 // Setup lighting
56 SetupLighting();
57
58 // Create terrain
59 CreateTerrain();
60
61 // Setup post-processing
62 SetupPostProcessing();
63
64 // Create player
65 CreatePlayerController();
66 }
67}
68```
69
70### Step 3: Terrain Generation
71
72**Options:**
731. **Unity Terrain** - Best for natural landscapes
742. **Mesh Generation** - Best for stylized/architectural
753. **Procedural Generation** - Best for endless/replayable worlds
76
77### Step 4: Environment & Props
78
79Automate placement of:
80- Vegetation (trees, grass, rocks)
81- Structures (buildings, ruins, dungeons)
82- Lighting (sun, ambient, point lights)
83- Effects (fog, particles, post-processing)
84
85### Step 5: Player & Gameplay
86
87Create basic:
88- Player controller (FPS, third-person, top-down)
89- Camera setup
90- Input handling
91- Basic interactions
92
93## Scene Types
94
95### Post-Apocalyptic Scene
96- Destroyed urban environment
97- Ruined buildings and debris
98- Overgrown vegetation
99- Atmospheric fog and lighting
100- Scattered resources/props
101
102### Fantasy Forest
103- Dense woodland terrain
104- Rivers and lakes
105- Fantasy vegetation
106- Magical lighting effects
107- Pathways and clearings
108
109### Dungeon Crawler
110- Procedural room generation
111- Corridor systems
112- Torch/candle lighting
113- Traps and enemy spawners
114- Loot chests
115
116## Quick Reference
117
118| Task | Method | API/Tool |
119|------|--------|----------|
120| Create Terrain | Editor script | `Terrain.CreateTerrainGameObject` |
121| Sculpt Terrain | Noise/heightmaps | `TerrainData.SetHeights` |
122| Add Vegetation | Tree/Grass painting | `TerrainData.treeInstances` |
123| Setup Lighting | URP/HDRP | `UniversalAdditionalLightData` |
124| Post-Processing | Volume components | `Volume` + profiles |
125| Player Controller | Character Controller | `CharacterController` component |
126| Procedural Meshes | Runtime generation | `Mesh` class |
127
128## Editor Tools
129
130See `scripts/` for automation tools:
131- `SceneSetupWizard.cs` - One-click scene initialization
132- `TerrainGenerator.cs` - Procedural terrain creation
133- `EnvironmentPainter.cs` - Batch environment placement
134- `LightingSetup.cs` - Automated lighting configuration
135
136## References
137
138See `references/` for detailed documentation:
139- `unity-apis.md` - Current Unity API reference
140- `terrain-tools.md` - Terrain system documentation
141- `urp-setup.md` - Universal Render Pipeline guide
142- `level-design-patterns.md` - Best practices and patterns
143
144## Common Mistakes
145
146- **Wrong render pipeline**: Check if project uses URP, HDRP, or Built-in RP
147- **Terrain scale**: Unity terrain uses different height/length scales
148- **Lighting baking**: Realtime GI can be slow; use baked lighting for static geometry
149- **Performance**: Too many trees/colliders will kill performance
150- **Scale consistency**: Keep player, environment, and props to consistent scale
151
152## Example Usage
153
154```csharp
155// Create a post-apocalyptic scene
156[MenuItem("Level Design/Post-Apocalyptic Scene")]
157static void CreatePostApocalypticScene()
158{
159 // 1. Create terrain with noise
160 var terrain = TerrainGenerator.CreateRuinedTerrain();
161
162 // 2. Setup dramatic lighting
163 LightingSetup.CreateDramaticLighting(Color.gray * 0.3f);
164
165 // 3. Add fog and post-processing
166 PostProcessingSetup.CreateAtmosphericFog();
167
168 // 4. Scatter debris and props
169 EnvironmentPainter.ScatterDebris(50);
170
171 // 5. Create player
172 var player = PlayerSetup.CreateFPSPlayer();
173 player.transform.position = new Vector3(0, 5, 0);
174}
175```