addressables-design
Source-anchored design rules for Unity Addressables 1.22.3/2.9.1
Operate on Unity Terrain
$ npx -y skills add Besty0728/Unity-Skills --skill terrain --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/terrainContext preview
The summary Claude sees to decide when to auto-load this skill.
Operate on Unity Terrain
name: unity-terrain description: Operate on Unity Terrain
> **Before calling any skill in this module:** if you are about to call a skill with parameters guessed from its name or description, STOP — read this file (or fetch its schema via `GET /skills/recommend?includeSchema=true`) first. If you already have the parameter definitions from recommend/schema, you may proceed straight to dryRun.
**Operating Mode** (v1.9 three-tier):
> **Note**: All sculpt/paint operations require an existing Terrain in the scene, or use `terrain_create` to generate one.
**DO NOT** (common hallucinations):
**Routing**:
| Skill | Description | |-------|-------------| | `terrain_create` | Create new Terrain with TerrainData | | `terrain_get_info` | Get terrain size, resolution, layers | | `terrain_get_height` | Get height at world position | | `terrain_set_height` | Set height at normalized coords | | `terrain_set_heights_batch` | Batch set heights in region | | `terrain_add_hill` | ⭐ Add smooth hill with radius and falloff | | `terrain_generate_perlin` | ⭐ Generate natural terrain using Perlin noise | | `terrain_smooth` | ⭐ Smooth terrain to reduce sharp edges | | `terrain_flatten` | ⭐ Flatten terrain to target height | | `terrain_paint_texture` | Paint texture layer at position |
---
Create a new Terrain GameObject with TerrainData asset.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | `name` | string | No | "Terrain" | Terrain name | | `width` | int | No | 500 | Terrain width (X) | | `length` | int | No | 500 | Terrain length (Z) | | `height` | int | No | 100 | Max terrain height (Y) | | `heightmapResolution` | int | No | 513 | Heightmap resolution (power of 2 + 1) | | `x`, `y`, `z` | float | No | 0 | Position |
**Returns**: `{success, name, instanceId, terrainDataPath, size, position}`
Get terrain information.
| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `name` | string | No* | Terrain name | | `instanceId` | int | No* | Instance ID |
*If neither provided, uses first terrain in scene
**Returns**: `{success, name, instanceId, position, size, heightmapResolution, alphamapResolution, detailResolution, terrainLayerCount, layers}`
Get terrain height at world position.
| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `worldX` | float | Yes | World X coordinate | | `worldZ` | float | Yes | World Z coordinate | | `name` | string | No | Terrain name |
**Returns**: `{success, worldX, worldZ, height, worldY}`
Set height at normalized coordinates.
| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `normalizedX` | float | Yes | X position (0-1) | | `normalizedZ` | float | Yes | Z position (0-1) | | `height` | float | Yes | Height value (0-1) | | `name` | string | No | Terrain name | | `instanceId` | int | No | Terrain instance ID |
**Returns**: `{success, normalizedX, normalizedZ, height, pixelX, pixelZ}`
⚠️ **BATCH SKILL**: Set heights in rectangular region.
| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `startX` | int | Yes | Start X pixel index | | `startZ` | int | Yes | Start Z pixel index | | `heights` | float[][] | Yes | 2D array [z][x] with values 0-1 | | `name` | string | No | Terrain name | | `instanceId` | int | No | Terrain instance ID |
**Returns**: `{success, startX, startZ, modifiedWidth, modifiedLength, totalPointsModified}`
# Example: Create a 10x10 hill
heights = [[0.5 - abs(x-5)/10 - abs(z-5)/10 for x in range(10)] for z in range(10)]
call_skill("terrain_set_heights_batch", startX=50, startZ=50, heights=heights)⭐ **RECOMMENDED**: Add a smooth, natural-looking hill to the terrain.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | `normalizedX` | float | Yes | - | X position (0-1) | | `normalizedZ` | float | Yes | - | Z position (0-1) | | `radius` | float | No | 0.2 | Hill radius (0-1, relative to terrain size) | | `height` | float | No | 0.5 | Hill height (0-1) | | `smoothness` | float | No | 1.0 | Smoothness factor (higher = smoother) | | `name` | string | No | null | Terrain name | | `instanceId` | int | No | 0 | T
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)