addressables-design
Source-anchored design rules for Unity Addressables 1.22.3/2.9.1
Optimize project assets and scenes
Claude Code
$ npx -y skills add Besty0728/Unity-Skills --skill optimization --agent claude-code
Codex
$ npx skills add Besty0728/Unity-Skills --skill optimization -a codex -y
Cursor
$ npx skills add Besty0728/Unity-Skills --skill optimization -a cursor -y
Gemini CLI
$ npx skills add Besty0728/Unity-Skills --skill optimization -a gemini-cli -y
GitHub Copilot
$ npx skills add Besty0728/Unity-Skills --skill optimization -a github-copilot -y
OpenCode
$ npx skills add Besty0728/Unity-Skills --skill optimization -a opencode -y
Windsurf
$ npx skills add Besty0728/Unity-Skills --skill optimization -a windsurf -y
name: unity-optimization description: Optimize project assets and scenes
Analyse and optimise project assets (textures, models, audio) and scene objects (static flags, LOD groups). Parameters come from the schema (`GET /skills/schema?category=Optimization&wire=v2`); execution and dryRun rules: root [SKILL.md](../../SKILL.md).
Optimize texture settings (maxSize, compression). Returns the 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 search filter | | limit | int | No | 0 | Maximum textures to modify; 0 = no limit |
**Returns:** `{ success, count, message, modified }`
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 }`
Analyze the 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 }`
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 }`
Set static flags on a GameObject. `flags` is comma-separated, drawn from `ContributeGI`, `OccluderStatic`, `OccludeeStatic`, `BatchingStatic`, `ReflectionProbeStatic`, plus the deprecated `NavigationStatic` and `OffMeshLinkGeneration`; the `Everything` and `Nothing` aliases are described under Pitfalls.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | null | GameObject name | | entityId | string | No | null | GameObject entity ID (preferred; the only id on Unity 6000.4+) | | 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 | | includeChildren | bool | No | false | Apply to all children recursively |
**Returns:** `{ success, gameObject, flags, affectedCount }`
Get the static flags of a GameObject.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | null | GameObject name | | entityId | string | No | null | GameObject entity ID (preferred; the only id on Unity 6000.4+) | | instanceId | int | No | 0 | GameObject instance ID | | path | string | No | null | GameObject hierarchy path |
**Returns:** `{ success, gameObject, flags, isStatic }`
Batch-set audio compression. `compressionFormat`: PCM, Vorbis or ADPCM. `loadType`: DecompressOnLoad, CompressedInMemory or Streaming.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | compressionFormat | string | No | "Vorbis" | PCM, Vorbis or ADPCM | | loadType | string | No | "CompressedInMemory" | DecompressOnLoad, CompressedInMemory or Streaming | | quality | float | No | 0.5 | Compression quality 0.0-1.0 | | filter | string | No | "" | Asset filter |
**Returns:** `{ success, count, compressionFormat, loadType, modified }`
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 }`
Find transparent objects that may cause overdraw.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | limit | int | No | 50
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)
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.