Unity Asset Management
SkillSearchSupports creating, editing, and managing Unity assets (prefabs, materials, asset database, Addressables). Includes dependency analysis and import settings. Use when: prefab creation, material editing, asset search, dependency analysis, Addressables
Use Unity Asset Management in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Unity Asset Management and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the Unity Asset Management skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
What this skill tells your AI
The instructions your AI receives, as published by akiojin/unity-mcp-server in .claude-plugin/plugins/unity-mcp-server/skills/unity-asset-management/SKILL.md and read by Ahel’s review.
A guide for managing prefabs, materials, asset database, and Addressables.
Quick Start
1. Create and Place Prefabs
// Create prefab from GameObject
mcp__unity-mcp-server__create_prefab({
prefabPath: "Assets/Prefabs/Enemy.prefab",
gameObjectPath: "/Enemy"
})
// Instantiate prefab in scene
mcp__unity-mcp-server__instantiate_prefab({
prefabPath: "Assets/Prefabs/Enemy.prefab",
position: { x: 5, y: 0, z: 0 },
name: "Enemy_01"
})
2. Create Material
// Create basic material
mcp__unity-mcp-server__create_material({
materialPath: "Assets/Materials/RedMetal.mat",
shader: "Standard",
properties: {
"_Color": [1, 0, 0, 1],
"_Metallic": 0.8,
"_Glossiness": 0.6
}
})
3. Search Assets
// Search for textures
mcp__unity-mcp-server__manage_asset_database({
action: "find_assets",
filter: "t:Texture2D"
})
Prefab Management
Create Prefab
// Create prefab from scene GameObject
mcp__unity-mcp-server__create_prefab({
prefabPath: "Assets/Prefabs/Player.prefab",
gameObjectPath: "/Player"
})
// Create empty prefab
mcp__unity-mcp-server__create_prefab({
prefabPath: "Assets/Prefabs/Empty.prefab",
createFromTemplate: true
})
// Allow overwrite
mcp__unity-mcp-server__create_prefab({
prefabPath: "Assets/Prefabs/Player.prefab",
gameObjectPath: "/Player",
overwrite: true
})
Prefab Mode (Editing)
// Open prefab
mcp__unity-mcp-server__open_prefab({
prefabPath: "Assets/Prefabs/Player.prefab"
})
// Focus on specific object
mcp__unity-mcp-server__open_prefab({
prefabPath: "Assets/Prefabs/Player.prefab",
focusObject: "Weapon", // Relative path from prefab root
isolateObject: true
})
// Edit in prefab mode (component operations, etc.)
mcp__unity-mcp-server__add_component({
gameObjectPath: "/Player", // In prefab mode, prefab root is the root
componentType: "AudioSource"
})
// Save and exit prefab mode
mcp__unity-mcp-server__save_prefab()
mcp__unity-mcp-server__exit_prefab_mode({ saveChanges: true })
// Exit without saving
mcp__unity-mcp-server__exit_prefab_mode({ saveChanges: false })
Prefab Instantiation
// Basic instantiation
mcp__unity-mcp-server__instantiate_prefab({
prefabPath: "Assets/Prefabs/Enemy.prefab"
})
// With Transform
mcp__unity-mcp-server__instantiate_prefab({
prefabPath: "Assets/Prefabs/Enemy.prefab",
position: { x: 10, y: 0, z: 5 },
rotation: { x: 0, y: 90, z: 0 },
name: "Enemy_Guard"
})
// With parent object
mcp__unity-mcp-server__instantiate_prefab({
prefabPath: "Assets/Prefabs/Coin.prefab",
parent: "/Collectibles",
position: { x: 0, y: 1, z: 0 }
})
Prefab Modification
// Change properties (also apply to instances)
mcp__unity-mcp-server__modify_prefab({
prefabPath: "Assets/Prefabs/Enemy.prefab",
modifications: {
"health": 150,
"speed": 3.5
},
applyToInstances: true
})
// Do not apply to instances
mcp__unity-mcp-server__modify_prefab({
prefabPath: "Assets/Prefabs/Enemy.prefab",
modifications: { "debugMode": true },
applyToInstances: false
})
Material Management
Create Material
// Standard shader
mcp__unity-mcp-server__create_material({
materialPath: "Assets/Materials/Metal.mat",
shader: "Standard",
properties: {
"_Color": [0.8, 0.8, 0.8, 1],
"_Metallic": 1.0,
"_Glossiness": 0.9
}
})
// Unlit shader
mcp__unity-mcp-server__create_material({
materialPath: "Assets/Materials/Unlit.mat",
shader: "Unlit/Color",
properties: {
"_Color": [1, 0, 0, 1]
}
})
// URP shader
mcp__unity-mcp-server__create_material({
materialPath: "Assets/Materials/URPLit.mat",
shader: "Universal Render Pipeline/Lit",
properties: {
"_BaseColor": [1, 1, 1, 1],
"_Smoothness": 0.5
}
})
// Copy existing material
mcp__unity-mcp-server__create_material({
materialPath: "Assets/Materials/MetalRed.mat",
copyFrom: "Assets/Materials/Metal.mat",
properties: {
"_Color": [1, 0, 0, 1]
}
})
Modify Material
// Change properties
mcp__unity-mcp-server__modify_material({
materialPath: "Assets/Materials/Metal.mat",
properties: {
"_Color": [0, 0, 1, 1],
"_Metallic": 0.5
}
})
// Change shader
mcp__unity-mcp-server__modify_material({
materialPath: "Assets/Materials/Debug.mat",
shader: "Unlit/Color",
properties: {
"_Color": [1, 0, 1, 1]
}
})
Common Shader Properties
| Shader | Property | Description |
|---|---|---|
| Standard | _Color | Albedo color [R,G,B,A] |
| Standard | _Metallic | Metallic value 0-1 |
| Standard | _Glossiness | Smoothness 0-1 |
| Standard | _MainTex | Albedo texture |
| Standard | _BumpMap | Normal map |
| Standard | _EmissionColor | Emission color |
| URP/Lit | _BaseColor | Base color |
| URP/Lit | _Smoothness | Smoothness |
| URP/Lit | _BaseMap | Base texture |
Asset Database Operations
Search Assets
// Type filter
mcp__unity-mcp-server__manage_asset_database({
action: "find_assets",
filter: "t:Texture2D"
})
// Name filter
mcp__unity-mcp-server__manage_asset_database({
action: "find_assets",
filter: "Player"
})
// Label filter
mcp__unity-mcp-server__manage_asset_database({
action: "find_assets",
filter: "l:UI"
})
// Combined filter
mcp__unity-mcp-server__manage_asset_database({
action: "find_assets",
filter: "t:Material Player"
})
// Folder specification
mcp__unity-mcp-server__manage_asset_database({
action: "find_assets",
filter: "t:Prefab",
searchInFolders: ["Assets/Prefabs", "Assets/Characters"]
})
Filter Syntax
| Filter | Description | Example |
|---|---|---|
t:Type | Search by type | t:Texture2D, t:Material, t:Prefab |
l:Label | Search by label | l:UI, l:Environment |
name | Search by name | Player, Enemy* |
| Combined | AND with space | t:Material Red |
Get Asset Info
mcp__unity-mcp-server__manage_asset_database({
action: "get_asset_info",
assetPath: "Assets/Textures/Player.png"
})
// Returns: type, size, dependencies, labels, etc.
Folder Operations
// Create folder
mcp__unity-mcp-server__manage_asset_database({
action: "create_folder",
folderPath: "Assets/NewFeature/Prefabs"
})
Move, Copy, Delete Assets
// Move
mcp__unity-mcp-server__manage_asset_database({
action: "move_asset",
fromPath: "Assets/Old/Player.prefab",
toPath: "Assets/New/Player.prefab"
})
// Copy
mcp__unity-mcp-server__manage_asset_database({
action: "copy_asset",
fromPath: "Assets/Templates/Enemy.prefab",
toPath: "Assets/Enemies/Enemy_01.prefab"
})
// Delete
mcp__unity-mcp-server__manage_asset_database({
action: "delete_asset",
assetPath: "Assets/Unused/OldPrefab.prefab"
})
Refresh and Save
// Refresh asset database
mcp__unity-mcp-server__manage_asset_database({
action: "refresh"
})
// Save all assets
mcp__unity-mcp-server__manage_asset_database({
action: "save"
})
Dependency Analysis
Get Dependencies
// Get asset dependencies
mcp__unity-mcp-server__analyze_asset_dependencies({
action: "get_dependencies",
assetPath: "Assets/Prefabs/Player.prefab",
recursive: true // Include indirect dependencies
})
Get Dependents
// Find assets that reference this asset
mcp__unity-mcp-server__analyze_asset_dependencies({
action: "get_dependents",
assetPath: "Assets/Materials/PlayerMat.mat"
})
Detect Circular Dependencies
mcp__unity-mcp-server__analyze_asset_dependencies({
action: "analyze_circular"
})
Detect Unused Assets
mcp__unity-mcp-server__analyze_asset_dependencies({
action: "find_unused",
includeBuiltIn: false
})
Analyze Size Impact
// Total size of asset and its dependencies
mcp__unity-mcp-server__analyze_asset_dependencies({
action: "analyze_size_impact",
assetPath: "Assets/Prefabs/Boss.prefab"
})
Validate References
// Detect broken references
mcp__unity-mcp-server__analyze_asset_dependencies({
action: "validate_references"
})
Addressables System
Entry Management
// Add entry
mcp__unity-mcp-server__addressables_manage({
action: "add_entry",
assetPath: "Assets/Prefabs/Enemy.prefab",
groupName: "Enemies",
address: "enemy_basic",
labels: ["combat", "spawn"]
})
// Remove entry
mcp__unity-mcp-server__addressables_manage({
action: "remove_entry",
assetPath: "Assets/Prefabs/OldEnemy.prefab"
})
// Change address
mcp__unity-mcp-server__addressables_manage({
action: "set_address",
assetPath: "Assets/Prefabs/Enemy.prefab",
newAddress: "enemy_soldier"
})
// Add label
mcp__unity-mcp-server__addressables_manage({
action: "add_label",
assetPath: "Assets/Prefabs/Enemy.prefab",
label: "boss"
})
// Remove label
mcp__unity-mcp-server__addressables_manage({
action: "remove_label",
assetPath: "Assets/Prefabs/Enemy.prefab",
label: "combat"
})
// Move entry to different group
mcp__unity-mcp-server__addressables_manage({
action: "move_entry",
assetPath: "Assets/Prefabs/Enemy.prefab",
targetGroupName: "BossEnemies"
})
Group Management
// List groups
mcp__unity-mcp-server__addressables_manage({
action: "list_groups"
})
// List entries in group
mcp__unity-mcp-server__addressables_manage({
action: "list_entries",
groupName: "Enemies",
pageSize: 50,
offset: 0
})
// Create group
mcp__unity-mcp-server__addressables_manage({
action: "create_group",
groupName: "DLC_01"
})
// Remove group
mcp__unity-mcp-server__addressables_manage({
action: "remove_group",
groupName: "OldGroup"
})
Addressables Build
// Build
mcp__unity-mcp-server__addressables_build({
action: "build",
buildTarget: "StandaloneWindows64"
})
// Clean build (delete cache then build)
mcp__unity-mcp-server__addressables_build({
action: "clean_build"
})
Addressables Analysis
// Detect duplicate assets
mcp__unity-mcp-server__addressables_analyze({
action: "analyze_duplicates",
pageSize: 20
})
// Analyze dependencies
mcp__unity-mcp-server__addressables_analyze({
action: "analyze_dependencies",
assetPath: "Assets/Prefabs/Player.prefab"
})
// Detect unused assets
mcp__unity-mcp-server__addressables_analyze({
action: "analyze_unused",
pageSize: 50
})
Import Settings
Get Import Settings
mcp__unity-mcp-server__manage_asset_import_settings({
action: "get",
assetPath: "Assets/Textures/Player.png"
})
Texture Settings
mcp__unity-mcp-server__manage_asset_import_settings({
action: "modify",
assetPath: "Assets/Textures/Player.png",
settings: {
maxTextureSize: 1024,
textureCompression: "Compressed",
filterMode: "Bilinear",
generateMipMaps: true,
sRGBTexture: true
}
})
Audio Settings
mcp__unity-mcp-server__manage_asset_import_settings({
action: "modify",
assetPath: "Assets/Audio/BGM.mp3",
settings: {
loadType: "Streaming",
compressionFormat: "Vorbis",
quality: 0.7,
sampleRateSetting: "PreserveSampleRate"
}
})
Apply Preset
// Apply saved preset
mcp__unity-mcp-server__manage_asset_import_settings({
action: "apply_preset",
assetPath: "Assets/Textures/UI_Icon.png",
preset: "UISprite"
})
Reimport
mcp__unity-mcp-server__manage_asset_import_settings({
action: "reimport",
assetPath: "Assets/Textures/Player.png"
})
Common Workflows
Prefab Workflow
// 1. Build GameObject in scene
mcp__unity-mcp-server__create_gameobject({
name: "NewEnemy",
primitiveType: "capsule"
})
mcp__unity-mcp-server__add_component({
gameObjectPath: "/NewEnemy",
componentType: "Rigidbody"
})
// 2. Convert to prefab
mcp__unity-mcp-server__create_prefab({
prefabPath: "Assets/Prefabs/Enemies/NewEnemy.prefab",
gameObjectPath: "/NewEnemy"
})
// 3. Delete original in scene
mcp__unity-mcp-server__delete_gameobject({
path: "/NewEnemy"
})
// 4. Instantiate from prefab
mcp__unity-mcp-server__instantiate_prefab({
prefabPath: "Assets/Prefabs/Enemies/NewEnemy.prefab",
position: { x: 0, y: 0, z: 0 }
})
Material Variations
// Create base material
mcp__unity-mcp-server__create_material({
materialPath: "Assets/Materials/Enemy_Base.mat",
shader: "Standard",
properties: {
"_Metallic": 0.2,
"_Glossiness": 0.5
}
})
// Create variations
const colors = [
{ name: "Red", color: [1, 0, 0, 1] },
{ name: "Blue", color: [0, 0, 1, 1] },
{ name: "Green", color: [0, 1, 0, 1] }
]
for (const variant of colors) {
mcp__unity-mcp-server__create_material({
materialPath: `Assets/Materials/Enemy_${variant.name}.mat`,
copyFrom: "Assets/Materials/Enemy_Base.mat",
properties: { "_Color": variant.color }
})
}
Addressables Setup
// 1. Create group
mcp__unity-mcp-server__addressables_manage({
action: "create_group",
groupName: "Characters"
})
// 2. Add assets
mcp__unity-mcp-server__addressables_manage({
action: "add_entry",
assetPath: "Assets/Prefabs/Player.prefab",
groupName: "Characters",
address: "player",
labels: ["player", "controllable"]
})
mcp__unity-mcp-server__addressables_manage({
action: "add_entry",
assetPath: "Assets/Prefabs/NPC.prefab",
groupName: "Characters",
address: "npc_villager",
labels: ["npc", "friendly"]
})
// 3. Build
mcp__unity-mcp-server__addressables_build({
action: "build"
})
// 4. Analyze
mcp__unity-mcp-server__addressables_analyze({
action: "analyze_duplicates"
})
Common Mistakes
1. Prefab Path Format
// ❌ No extension
prefabPath: "Assets/Prefabs/Player"
// ✅ .prefab extension required
prefabPath: "Assets/Prefabs/Player.prefab"
// ❌ Not starting with Assets
prefabPath: "Prefabs/Player.prefab"
// ✅ Start with Assets/
prefabPath: "Assets/Prefabs/Player.prefab"
2. Material Path Format
// ❌ No extension
materialPath: "Assets/Materials/Red"
// ✅ .mat extension required
materialPath: "Assets/Materials/Red.mat"
3. Forgetting to Exit Prefab Mode
// ✅ Always exit prefab mode
mcp__unity-mcp-server__open_prefab({ prefabPath: "..." })
// ... edit ...
mcp__unity-mcp-server__exit_prefab_mode({ saveChanges: true })
4. Forgetting to Refresh
// After modifying files externally
// ✅ Refresh to reflect changes
mcp__unity-mcp-server__manage_asset_database({
action: "refresh"
})
5. Addressables Group Not Created
// ❌ Adding entry to non-existent group
mcp__unity-mcp-server__addressables_manage({
action: "add_entry",
groupName: "NonExistent", // Error
...
})
// ✅ Create group first
mcp__unity-mcp-server__addressables_manage({
action: "create_group",
groupName: "NewGroup"
})
mcp__unity-mcp-server__addressables_manage({
action: "add_entry",
groupName: "NewGroup",
...
})
Tool Reference
| Tool | Purpose |
|---|---|
create_prefab | Create prefab |
open_prefab | Start prefab mode |
exit_prefab_mode | End prefab mode |
save_prefab | Save prefab |
instantiate_prefab | Instantiate prefab |
modify_prefab | Modify prefab |
create_material | Create material |
modify_material | Modify material |
manage_asset_database | Asset DB operations |
analyze_asset_dependencies | Dependency analysis |
manage_asset_import_settings | Import settings |
addressables_manage | Addressables management |
addressables_build | Addressables build |
addressables_analyze | Addressables analysis |
Signals
- GitHub stars
- 34
- Forks
- 7
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
unity-asset-management-akiojin- Source
- github.com/akiojin/unity-mcp-server