addressables-design
Source-anchored design rules for Unity Addressables 1.22.3/2.9.1
Create and configure URP Decal Projectors
$ npx -y skills add Besty0728/Unity-Skills --skill decal --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/decalContext preview
The summary Claude sees to decide when to auto-load this skill.
Create and configure URP Decal Projectors
name: unity-decal description: Create and configure URP Decal Projectors
> **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.
URP Decal Projector creation and configuration (URP only; HDRP decal APIs are not covered here).
This module is compiled against `com.unity.render-pipelines.universal` (`URP`). When URP is not installed, **every** skill returns a stub `{ error: "Universal Render Pipeline package … is not installed." }` (`RenderPipelineSkillsCommon.NoURP()`). The stub is a diagnostic payload, not a permission denial — it does **not** require grant and is **not** treated as NeverInSemi.
**Routing**:
**Runtime-first rules**:
Create a Decal Projector.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | `name` | string | No | "Decal Projector" | Name of the new GameObject | | `materialPath` | string | No | null | Decal material asset path; left unassigned when omitted | | `x` | float | No | 0 | World position X | | `y` | float | No | 0 | World position Y | | `z` | float | No | 0 | World position Z |
Inspect a Decal Projector.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | `name` | string | No* | null | GameObject name | | `instanceId` | int | No* | 0 | GameObject instance ID | | `path` | string | No* | null | GameObject hierarchy path |
\* Supply at least one locator — an empty call is refused up front rather than reported as "not found".
Modify Decal Projector properties. Every property below is applied only when supplied, so a call changes exactly the fields you name.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | `name` | string | No* | null | GameObject name | | `instanceId` | int | No* | 0 | GameObject instance ID | | `path` | string | No* | null | GameObject hierarchy path | | `materialPath` | string | No | null | Decal material asset path | | `drawDistance` | float | No | null | Max distance at which the decal is drawn | | `fadeScale` | float | No | null | Fraction of `drawDistance` at which fading starts | | `fadeFactor` | float | No | null | Overall opacity multiplier | | `startAngleFade` | float | No | null | Angle (degrees) where angle-based fading begins | | `endAngleFade` | float | No | null | Angle (degrees) where angle-based fading completes | | `uvScale` | string | No | null | UV tiling as `"x,y"` | | `uvBias` | string | No | null | UV offset as `"x,y"` | | `size` | string | No | null | Projector box size as `"x,y,z"` | | `pivot` | string | No | null | Projector pivot offset as `"x,y,z"` | | `renderingLayerMask` | uint | No | null | Rendering layer mask bits | | `scaleMode` | string | No | null | `ScaleInvariant` or `InheritFromHierarchy` |
List Decal Projectors in the scene.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | `limit` | int | No | 50 | Max projectors returned |
Delete a Decal Projector GameObject.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | `name` | string | No* | null | GameObject name | | `instanceId` | int | No* | 0 | GameObject instance ID | | `path` | string | No* | null | GameObject hierarchy path |
Batch-edit Decal Projectors.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | `items` | json string | Yes | - | JSON array of `{name, instanceId, path, materialPath, drawDistance, fadeScale, fadeFactor, startAngleFade, endAngleFade, uvScale, uvBias, size, pivot, renderingLayerMask, scaleMode}` — same per-item keys as `decal_set_properties` |
Ensure the target URP renderer has a DecalRendererFeature.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | `assetPath` | string | No | null | URP asset path; the active URP asset is used when omitted | | `rendererIndex` | int | No | -1 | Renderer index within the URP asset; `-1` selects the asset's default renderer | | `rendererDataPath` | string | No | null | `UniversalRendererData` asset path — takes
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)