unity-decal
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.
Triggers
- Adding decals in URP
- Configuring a Decal Projector
- Enabling the Decal Renderer Feature
- 在 URP 中添加贴花、配置 Decal Projector、启用 Decal Renderer Feature
Decal Skills
URP Decal Projector creation and configuration (URP only; HDRP decal APIs are not covered here).
Operating Mode
- Query skills (
decal_get_info,decal_find_all) areSkillMode.SemiAuto— they run in all three modes without grant. - Mutating skills (
decal_create,decal_set_properties,decal_set_properties_batch,decal_ensure_renderer_feature) areSkillMode.FullAuto— under Approval they need user grant (grant triggers one server-side execute returning the result); under Auto / Bypass they execute directly. decal_deletecarriesSkillOperation.Deleteand is auto-forbidden in Approval / Auto modes (NeverInSemi). Only Bypass or the user-managed Allowlist can run it.
URP Package Stub
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.
Guardrails
Routing:
- For renderer feature management in general:
urp - For DecalProjector scene operations: this module
Runtime-first rules:
- Call
decal_ensure_renderer_featurebefore assuming the current URP renderer is decal-ready - Use
decal_get_info/decal_find_allto discover real projector state before editing decal_set_properties_batchexpectsitemsto be a JSON array string- This module targets the URP Decal workflow first; do not assume HDRP decal APIs are covered here
Skills
decal_create
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 |
decal_get_info
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".
decal_set_properties
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 |
decal_find_all
List Decal Projectors in the scene.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| limit | int | No | 50 | Max projectors returned |
decal_delete
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 |
decal_set_properties_batch
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 |
decal_ensure_renderer_feature
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 precedence over rendererIndex, and must belong to the resolved URP asset |
Returns alreadyExists: true when the feature was already present, so the call is safe to repeat.
Exact Signatures
Exact names, parameters, defaults, and returns are defined by GET /skills/schema or unity_skills.get_skill_schema(), not by this file.
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。
它属于哪个仓库
SkillsForUnity/unity-skills~/skills/decal/SKILL.md