unity-optimization
GitHub用于Unity项目资产优化的技能集合,支持纹理压缩、网格压缩、音频处理及场景性能分析。涵盖缩减包体、批量压缩资源和检测面数/材质用量等场景,提供只读分析与需授权的写型操作模式。
Trigger Scenarios
Install
npx skills add Besty0728/Unity-Skills --skill unity-optimization -g -y
SKILL.md
Frontmatter
{
"name": "unity-optimization",
"description": "Optimize project assets and scenes"
}
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
- Reducing build size
- Batch-compressing assets
- Analyzing scene poly/material usage
- 缩减包体、批量压缩资源、分析场景面数与材质用量
Optimization Skills
Optimize project assets (Textures, Models).
Operating Mode
- Approval: 只读分析类 skill(
optimize_analyze_scene/optimize_find_large_assets/optimize_get_static_flags/optimize_find_duplicate_materials/optimize_analyze_overdraw,标SkillMode.SemiAuto)直接执行;写型 skill(optimize_textures/optimize_mesh_compression/optimize_audio_compression/optimize_set_static_flags/optimize_set_lod_group,默认SkillMode.FullAuto)需用户 grant,grant 后一步执行返结果。 - Auto / Bypass: 直接执行。
- 本模块不含 Delete / PlayMode / Reload / RiskLevel=high 类 skill —— 写型 skill 改的是 Importer / 组件设置,会重新导入资源,但不会触发 Domain Reload,也不会被
IsForbiddenInSemi拦截。批量操作前务必检查筛选范围(filter/assetType),改完无 dry-run 回滚。
DO NOT (common hallucinations):
optimize_scene/optimization_rundo not exist → use specific skills:optimize_analyze_scene,optimize_find_large_assets,optimize_find_duplicate_materials, etc.optimize_compress/optimize_compress_textures/optimize_compress_meshes/optimize_compress_audiodo not exist → useoptimize_textures(textures),optimize_mesh_compression(meshes),optimize_audio_compression(audio)optimize_set_lod/optimize_setup_loddo not exist → useoptimize_set_lod_group- Optimization skills are analysis + action tools — always review results before applying batch changes
Routing:
- For profiler metrics → use
profilermodule - For static batching flags →
optimize_set_static_flags(this module) - For performance review guidance → load
performanceadvisory module
Skills
optimize_textures
Optimize texture settings (maxSize, compression). Returns list of modified textures.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| maxTextureSize | int | No | 2048 | Max texture size |
| enableCrunch | bool | No | true | Enable crunch compression |
| compressionQuality | int | No | 50 | Compression quality 0-100 |
| filter | string | No | "" | Asset filter |
Returns: { success, count, message, modified }
optimize_mesh_compression
Set mesh compression for 3D models.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| compressionLevel | string | No | "Medium" | Compression level: Off/Low/Medium/High |
| filter | string | No | "" | Asset filter |
Returns: { success, count, compression, modified }
optimize_analyze_scene
Analyze scene for performance bottlenecks (high-poly meshes, excessive materials).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| polyThreshold | int | No | 10000 | Triangle count threshold for high-poly warning |
| materialThreshold | int | No | 5 | Material slot count threshold for excessive materials warning |
Returns: { success, totalRenderers, totalTriangles, totalMaterialSlots, issueCount, issues }
optimize_find_large_assets
Find assets exceeding a size threshold (in KB).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| thresholdKB | int | No | 1024 | Size threshold in KB |
| assetType | string | No | "" | Asset type filter (e.g. Texture2D, AudioClip) |
| limit | int | No | 50 | Maximum number of results |
Returns: { success, threshold, count, assets }
optimize_set_static_flags
Set static flags on GameObjects. flags is comma-separated, drawn from ContributeGI, OccluderStatic, OccludeeStatic, BatchingStatic, ReflectionProbeStatic, plus the two deprecated members NavigationStatic and OffMeshLinkGeneration.
Everythingmeans the five non-deprecated flags, not literally everything.StaticEditorFlagsdeclares neitherEverythingnorNothing, so both are aliases this API adds:Nothingclears all bits, andEverythingis the OR of the members Unity's own Static dropdown still offers — numerically87, not the full127.NavigationStaticandOffMeshLinkGenerationare deprecated and excluded, so name them explicitly if you want them. Every listed part must resolve: one unknown name fails the whole call rather than silently applying the subset that parsed, and a raw number carrying bits outside the enum's declared mask ("999") is rejected too.
| 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 |
| flags | string | No | "Everything" | Comma-separated static flags, or the Everything / Nothing aliases (see above) |
| includeChildren | bool | No | false | Apply to all children recursively |
Returns: { success, gameObject, flags, affectedCount }
optimize_get_static_flags
Get static flags of a 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 |
Returns: { success, gameObject, flags, isStatic }
optimize_audio_compression
Batch set audio compression. compressionFormat: PCM/Vorbis/ADPCM. loadType: DecompressOnLoad/CompressedInMemory/Streaming
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| compressionFormat | string | No | "Vorbis" | Audio compression format: PCM/Vorbis/ADPCM |
| loadType | string | No | "CompressedInMemory" | Audio load type: DecompressOnLoad/CompressedInMemory/Streaming |
| quality | float | No | 0.5 | Compression quality 0.0-1.0 |
| filter | string | No | "" | Asset filter |
Returns: { success, count, compressionFormat, loadType, modified }
optimize_find_duplicate_materials
Find materials with identical shader and properties.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| limit | int | No | 50 | Maximum number of duplicate groups to return |
Returns: { success, duplicateGroups, groups }
optimize_analyze_overdraw
Analyze transparent objects that may cause overdraw.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| limit | int | No | 50 | Maximum number of results |
Returns: { success, transparentObjectCount, objects }
optimize_set_lod_group
Add or configure LOD Group. lodDistances: comma-separated screen-relative heights (e.g. '0.6,0.3,0.1')
| 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 |
| lodDistances | string | No | "0.6,0.3,0.1" | Comma-separated screen-relative transition heights |
Returns: { success, gameObject, lodLevels, distances }
Exact Signatures
Exact names, parameters, defaults, and returns are defined by GET /skills/schema or unity_skills.get_skill_schema(), not by this file.
Version History
-
8c31c5a
Current 2026-08-27 12:44
修复模块文档审计问题,更新Addressables相关文档与模板,规范技能参数描述及无参技能约定,同步协议引用并恢复Python注释。
-
5ee8388
2026-08-17 04:11
精简根文档体积至6.2KB,将协议细节移至参考文件;新增SKILL_GUIDE.md指导模式文档;更新版本锚点至2.6.0并添加变更日志。
-
25d511e
2026-08-13 09:14
将描述压缩至约5191字符,并将路由说明移至Triggers部分
- ec9f870 2026-07-05 14:40


