/perception
Read-only scene, project and script analysis for AI context. 只读的场景、项目与脚本分析,为 AI 编码提供上下文。
$ npx -y skills add Besty0728/Unity-Skills --skill perception --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/perception
Context preview
The summary Claude sees to decide when to auto-load this skill.
Read-only scene, project and script analysis for AI context. 只读的场景、项目与脚本分析,为 AI 编码提供上下文。
SKILL.md
perception.SKILL.mdname: unity-perception
description: Read-only scene, project and script analysis for AI context. 只读的场景、项目与脚本分析,为 AI 编码提供上下文。
Triggers
- Gathering context before editing
- Understanding unfamiliar scene/project
- Auditing structure without changes
- 编辑前收集上下文、理解陌生场景或项目、在不改动的前提下审查结构
Unity Perception Skills
Use this module for read-only scene and project analysis.
Operating Mode
- **Approval / Auto / Bypass**: 本模块 18 个 skill 里的 17 个纯读 skill(`scene_analyze` / `scene_summarize` / `scene_health_check` / `scene_component_stats` / `scene_find_hotspots` / `scene_tag_layer_stats` / `scene_performance_hints` / `scene_diff` / `hierarchy_describe` / `scene_context` / `scene_dependency_analyze` / `scene_spatial_query` / `scene_materials` / `scene_contract_validate` / `project_stack_detect` / `script_analyze` / `script_dependency_graph`)都标 `Mode = SkillMode.SemiAuto` 且 `ReadOnly = true`,三档模式下直接执行无需 grant。
- **特别说明**:`scene_export_report` 写 markdown 文件到磁盘(`Operation = Analyze | Execute`,标 `MutatesAssets = true`),因此**不是** SemiAuto——它走默认 `SkillMode.FullAuto`,Approval 模式下需要 grant 才能执行。
- **本模块不含 Delete / PlayMode / Reload / RiskLevel=high 类 skill** —— 没有 `IsForbiddenInSemi` 拦截。
**DO NOT** (common hallucinations):
- `perception_analyze`, `perception_scan`, and `perception_describe` do not exist
- `scene_context` is not `editor_get_context`: it exports hierarchy/components/references, while editor context focuses on current editor state
- `scene_analyze`, `scene_health_check`, `scene_contract_validate`, `scene_component_stats`, `scene_find_hotspots`, and `project_stack_detect` belong to this module even if the prefix looks like `scene_*` or `project_*`
**Routing**:
- Current selection/play-mode/editor state -> `editor_get_context`
- Object search by name/path -> `scene_find_objects` or `gameobject_find`
- Script dependency closure -> `script_dependency_graph`
Skills
Scene Health and Summary
| Skill | Use | Key parameters | |-------|-----|----------------| | `scene_analyze` | Combined scene + project analysis | `topComponentsLimit?`, `issueLimit?`, `deepHierarchyThreshold?`, `largeChildCountThreshold?` | | `scene_health_check` | Read-only health report | `issueLimit?`, `deepHierarchyThreshold?`, `largeChildCountThreshold?` | | `scene_summarize` | Structured scene summary | `includeComponentStats?`, `topComponentsLimit?` | | `scene_component_stats` | Component and facility stats | `topComponentsLimit?` | | `scene_find_hotspots` | Deep hierarchy / large group / empty node hotspots | thresholds + `maxResults?` | | `scene_tag_layer_stats` | Tag/layer usage | none | | `scene_performance_hints` | Prioritized optimization hints | none |
Scene Snapshots and Exports
| Skill | Use | Key parameters | |-------|-----|----------------| | `scene_diff` | Capture or compare lightweight snapshots | `snapshotJson?` | | `hierarchy_describe` | Return text hierarchy tree | `maxDepth?`, `includeInactive?`, `maxItemsPerLevel?` | | `scene_context` | Export hierarchy, components, references | `maxDepth?`, `maxObjects?`, `rootPath?`, `includeValues?`, `includeReferences?`, `includeCodeDeps?` | | `scene_export_report` | Save markdown scene report | `savePath?`, `maxDepth?`, `maxObjects?` | | `scene_dependency_analyze` | Analyze impact / dependency graph in-scene | `targetPath?`, `savePath?` |
Project and Script Analysis
| Skill | Use | Key parameters | |-------|-----|----------------| | `project_stack_detect` | Detect pipeline, input, UI, packages, tests, folders | none | | `script_analyze` | Analyze one MonoBehaviour / ScriptableObject / user class by class name | `scriptName`, `includePrivate?` | | `script_dependency_graph` | N-hop dependency closure for one script class name | `scriptName`, `maxHops?`, `includeDetails?` |
Spatial and Material Queries
| Skill | Use | Key parameters | |-------|-----|----------------| | `scene_spatial_query` | Find objects near a point or object | `x/y/z?`, `radius?`, `nearObject?`, `componentFilter?`, `maxResults?` | | `scene_materials` | Summarize scene materials and shaders | `includeProperties?` | | `scene_contract_validate` | Validate default roots/tags/layers/UI EventSystem conventions | `requiredRootsJson?`, `requiredTagsJson?`, `requiredLayersJson?`, `requireEventSystemForUi?` |
High-Frequency Skill Differences
`scene_summarize` vs `scene_analyze` vs `scene_health_check`
| Skill | Best for | Typical output focus | |-------|----------|----------------------| | `scene_summarize` | Fast overview | object counts, hierarchy depth, top components | | `scene_analyze` | Broad diagnosis | summary + findings + warnings + recommendations + next-skill hints | | `scene_health_check` | Hygiene / red flags | missing scripts, duplicate names, deep hierarchy, empty nodes, hotspot-style findings |
`scene_context` vs `hierarchy_describe`
| Skill | Best for | Output style | |-------|----------|-------------| | `hierarchy_describe` | Human-readable tree | text tree, lightweight | | `scene_context` | AI coding context | structured hierarchy + components + references + optional code dependencies |
`scene_dependency_analyze` vs `script_dependency_graph`
| Skill | Scope | Use when | |-------|-------|----------| | `scene_dependency_analyze` | Scene object references | ask "who depends on this object if I delete or disable it" | | `script_dependency_graph` | Script class dependency closure | ask "which scripts do I have to touch to change this feature" |
Key Return Shapes
`scene_summarize`
Returns `sceneName`, `stats`, and optional `topComponents`.
`scene_analyze`
Returns `summary`, `stats`, `findings`, `warnings`, `recommendations`, and `suggestedNextSkills`.
`scene_health_check`
Returns `summary`, `findings`, `hotspots`, and `suggestedNextSkills`.
`scene_context`
Returns a structured export with `objects`, `references`, and optional `codeDependencies`. Use it when another AI step needs full scene context, not just a human
Read more
name: unity-perception description: Read-only scene, project and script analysis for AI context. 只读的场景、项目与脚本分析,为 AI 编码提供上下文。
Triggers
- Gathering context before editing
- Understanding unfamiliar scene/project
- Auditing structure without changes
- 编辑前收集上下文、理解陌生场景或项目、在不改动的前提下审查结构
Unity Perception Skills
Use this module for read-only scene and project analysis.
Operating Mode
- **Approval / Auto / Bypass**: 本模块 18 个 skill 里的 17 个纯读 skill(`scene_analyze` / `scene_summarize` / `scene_health_check` / `scene_component_stats` / `scene_find_hotspots` / `scene_tag_layer_stats` / `scene_performance_hints` / `scene_diff` / `hierarchy_describe` / `scene_context` / `scene_dependency_analyze` / `scene_spatial_query` / `scene_materials` / `scene_contract_validate` / `project_stack_detect` / `script_analyze` / `script_dependency_graph`)都标 `Mode = SkillMode.SemiAuto` 且 `ReadOnly = true`,三档模式下直接执行无需 grant。
- **特别说明**:`scene_export_report` 写 markdown 文件到磁盘(`Operation = Analyze | Execute`,标 `MutatesAssets = true`),因此**不是** SemiAuto——它走默认 `SkillMode.FullAuto`,Approval 模式下需要 grant 才能执行。
- **本模块不含 Delete / PlayMode / Reload / RiskLevel=high 类 skill** —— 没有 `IsForbiddenInSemi` 拦截。
**DO NOT** (common hallucinations):
- `perception_analyze`, `perception_scan`, and `perception_describe` do not exist
- `scene_context` is not `editor_get_context`: it exports hierarchy/components/references, while editor context focuses on current editor state
- `scene_analyze`, `scene_health_check`, `scene_contract_validate`, `scene_component_stats`, `scene_find_hotspots`, and `project_stack_detect` belong to this module even if the prefix looks like `scene_*` or `project_*`
**Routing**:
- Current selection/play-mode/editor state -> `editor_get_context`
- Object search by name/path -> `scene_find_objects` or `gameobject_find`
- Script dependency closure -> `script_dependency_graph`
Skills
Scene Health and Summary
| Skill | Use | Key parameters | |-------|-----|----------------| | `scene_analyze` | Combined scene + project analysis | `topComponentsLimit?`, `issueLimit?`, `deepHierarchyThreshold?`, `largeChildCountThreshold?` | | `scene_health_check` | Read-only health report | `issueLimit?`, `deepHierarchyThreshold?`, `largeChildCountThreshold?` | | `scene_summarize` | Structured scene summary | `includeComponentStats?`, `topComponentsLimit?` | | `scene_component_stats` | Component and facility stats | `topComponentsLimit?` | | `scene_find_hotspots` | Deep hierarchy / large group / empty node hotspots | thresholds + `maxResults?` | | `scene_tag_layer_stats` | Tag/layer usage | none | | `scene_performance_hints` | Prioritized optimization hints | none |
Scene Snapshots and Exports
| Skill | Use | Key parameters | |-------|-----|----------------| | `scene_diff` | Capture or compare lightweight snapshots | `snapshotJson?` | | `hierarchy_describe` | Return text hierarchy tree | `maxDepth?`, `includeInactive?`, `maxItemsPerLevel?` | | `scene_context` | Export hierarchy, components, references | `maxDepth?`, `maxObjects?`, `rootPath?`, `includeValues?`, `includeReferences?`, `includeCodeDeps?` | | `scene_export_report` | Save markdown scene report | `savePath?`, `maxDepth?`, `maxObjects?` | | `scene_dependency_analyze` | Analyze impact / dependency graph in-scene | `targetPath?`, `savePath?` |
Project and Script Analysis
| Skill | Use | Key parameters | |-------|-----|----------------| | `project_stack_detect` | Detect pipeline, input, UI, packages, tests, folders | none | | `script_analyze` | Analyze one MonoBehaviour / ScriptableObject / user class by class name | `scriptName`, `includePrivate?` | | `script_dependency_graph` | N-hop dependency closure for one script class name | `scriptName`, `maxHops?`, `includeDetails?` |
Spatial and Material Queries
| Skill | Use | Key parameters | |-------|-----|----------------| | `scene_spatial_query` | Find objects near a point or object | `x/y/z?`, `radius?`, `nearObject?`, `componentFilter?`, `maxResults?` | | `scene_materials` | Summarize scene materials and shaders | `includeProperties?` | | `scene_contract_validate` | Validate default roots/tags/layers/UI EventSystem conventions | `requiredRootsJson?`, `requiredTagsJson?`, `requiredLayersJson?`, `requireEventSystemForUi?` |
High-Frequency Skill Differences
`scene_summarize` vs `scene_analyze` vs `scene_health_check`
| Skill | Best for | Typical output focus | |-------|----------|----------------------| | `scene_summarize` | Fast overview | object counts, hierarchy depth, top components | | `scene_analyze` | Broad diagnosis | summary + findings + warnings + recommendations + next-skill hints | | `scene_health_check` | Hygiene / red flags | missing scripts, duplicate names, deep hierarchy, empty nodes, hotspot-style findings |
`scene_context` vs `hierarchy_describe`
| Skill | Best for | Output style | |-------|----------|-------------| | `hierarchy_describe` | Human-readable tree | text tree, lightweight | | `scene_context` | AI coding context | structured hierarchy + components + references + optional code dependencies |
`scene_dependency_analyze` vs `script_dependency_graph`
| Skill | Scope | Use when | |-------|-------|----------| | `scene_dependency_analyze` | Scene object references | ask "who depends on this object if I delete or disable it" | | `script_dependency_graph` | Script class dependency closure | ask "which scripts do I have to touch to change this feature" |
Key Return Shapes
`scene_summarize`
Returns `sceneName`, `stats`, and optional `topComponents`.
`scene_analyze`
Returns `summary`, `stats`, `findings`, `warnings`, `recommendations`, and `suggestedNextSkills`.
`scene_health_check`
Returns `summary`, `findings`, `hotspots`, and `suggestedNextSkills`.
`scene_context`
Returns a structured export with `objects`, `references`, and optional `codeDependencies`. Use it when another AI step needs full scene context, not just a human
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+.
Other skills on unity-skills.
- /addressables-design
Source-anchored design rules for Unity Addressables 1.22.3/2.9.1. 为 Unity Addressables 1.22.3/2.9.1 提供源码锚定的设计规则。
Open skill - /adr
Record Unity architecture decisions (ADR) with rationale. 记录 Unity 架构决策(ADR)与理由。
Open skill - /animator
Edit Unity Animator Controllers and drive runtime parameters. 编辑 Unity Animator Controller 并驱动运行时参数。
Open skill - /architecture
Advise on Unity gameplay and system architecture. 为 Unity 游戏与系统架构提供建议。
Open skill - /asmdef
Advise on Unity assembly definitions (asmdef). 为 Unity 程序集定义(asmdef)提供建议。
Open skill - /asset
Manage Unity AssetDatabase operations. 管理 Unity AssetDatabase 操作。
Open skill

