| name | unity-scene-management |
| description | Supports Unity scene and GameObject creation, management, and analysis. Efficiently performs hierarchy operations, component configuration, and scene analysis. Use when: scene creation, scene loading, GameObject creation, component addition, hierarchy retrieval, scene analysis |
Unity Scene & GameObject Management
A guide for creating, managing, and analyzing Unity scenes, GameObjects, and components.
Quick Start
1. Check Current Scene State
mcp__unity-mcp-server__list_scenes({ includeLoadedOnly: true })
mcp__unity-mcp-server__get_scene_info({ includeGameObjects: true })
mcp__unity-mcp-server__get_hierarchy({
nameOnly: true,
maxObjects: 100
})
2. Create GameObject
mcp__unity-mcp-server__create_gameobject({
name: "GameManager"
})
mcp__unity-mcp-server__create_gameobject({
name: "Floor",
primitiveType: "plane",
position: { x: 0, y: 0, z: 0 },
scale: { x: 10, y: 1, z: 10 }
})
3. Add Component
mcp__unity-mcp-server__add_component({
gameObjectPath: "/Player",
componentType: "Rigidbody",
properties: { mass: 1.5, useGravity: true }
})
Scene Operations
Create Scene
mcp__unity-mcp-server__create_scene({
sceneName: "Level01",
path: "Assets/Scenes/",
loadScene: true,
addToBuildSettings: true
})
Load Scene
mcp__unity-mcp-server__load_scene({
scenePath: "Assets/Scenes/MainMenu.unity",
loadMode: "Single"
})
mcp__unity-mcp-server__load_scene({
scenePath: "Assets/Scenes/UI.unity",
loadMode: "Additive"
})
Save Scene
mcp__unity-mcp-server__save_scene()
mcp__unity-mcp-server__save_scene({
scenePath: "Assets/Scenes/Level01_backup.unity",
saveAs: true
})
List & Info
mcp__unity-mcp-server__list_scenes()
mcp__unity-mcp-server__list_scenes({ includeBuildScenesOnly: true })
mcp__unity-mcp-server__get_scene_info({
scenePath: "Assets/Scenes/Main.unity",
includeGameObjects: true
})
GameObject Management
Creation Options
mcp__unity-mcp-server__create_gameobject({
name: "Enemy",
primitiveType: "cube",
parentPath: "/Enemies",
position: { x: 5, y: 1, z: 0 },
rotation: { x: 0, y: 45, z: 0 },
scale: { x: 1, y: 2, z: 1 },
tag: "Enemy",
layer: 8
})
Primitive Types
| Type | Description |
|---|
cube | Cube |
sphere | Sphere |
cylinder | Cylinder |
capsule | Capsule |
plane | Plane |
quad | Quad (2D plane) |
Search
mcp__unity-mcp-server__find_gameobject({
name: "Player",
exactMatch: true
})
mcp__unity-mcp-server__find_gameobject({
tag: "Enemy"
})
mcp__unity-mcp-server__find_gameobject({
layer: 8
})
mcp__unity-mcp-server__find_gameobject({
name: "Spawn",
exactMatch: false
})
Modify
mcp__unity-mcp-server__modify_gameobject({
path: "/Player",
position: { x: 0, y: 1, z: 0 },
rotation: { x: 0, y: 90, z: 0 }
})
mcp__unity-mcp-server__modify_gameobject({
path: "/OldName",
name: "NewName",
tag: "Player",
layer: 3
})
mcp__unity-mcp-server__modify_gameobject({
path: "/Player",
parentPath: "/Characters"
})
mcp__unity-mcp-server__modify_gameobject({
path: "/Characters/Player",
parentPath: null
})
mcp__unity-mcp-server__modify_gameobject({
path: "/Player",
active: false
})
Delete
mcp__unity-mcp-server__delete_gameobject({
path: "/OldObject"
})
mcp__unity-mcp-server__delete_gameobject({
paths: ["/Object1", "/Object2", "/Object3"]
})
mcp__unity-mcp-server__delete_gameobject({
path: "/Parent",
includeChildren: false
})
Get Hierarchy
mcp__unity-mcp-server__get_hierarchy({
nameOnly: true,
maxObjects: 500
})
mcp__unity-mcp-server__get_hierarchy({
includeComponents: true,
includeTransform: true,
maxObjects: 50
})
mcp__unity-mcp-server__get_hierarchy({
rootPath: "/Enemies",
maxDepth: 2
})
mcp__unity-mcp-server__get_hierarchy({
includeInactive: false
})
Component System
Add Component
mcp__unity-mcp-server__add_component({
gameObjectPath: "/Player",
componentType: "Rigidbody"
})
mcp__unity-mcp-server__add_component({
gameObjectPath: "/Player",
componentType: "BoxCollider",
properties: {
size: { x: 1, y: 2, z: 1 },
center: { x: 0, y: 1, z: 0 },
isTrigger: false
}
})
mcp__unity-mcp-server__add_component({
gameObjectPath: "/Player",
componentType: "PlayerController"
})
Modify Component
modify_component - Batch change multiple properties
mcp__unity-mcp-server__modify_component({
gameObjectPath: "/Player",
componentType: "Rigidbody",
properties: {
mass: 2.0,
drag: 0.5,
useGravity: true
}
})
set_component_field - Precise single field change
mcp__unity-mcp-server__set_component_field({
gameObjectPath: "/Player",
componentType: "PlayerController",
fieldPath: "_moveSpeed",
value: 5.0
})
mcp__unity-mcp-server__set_component_field({
gameObjectPath: "/Player",
componentType: "PlayerController",
fieldPath: "settings.jumpHeight",
value: 3.0
})
mcp__unity-mcp-server__set_component_field({
gameObjectPath: "/Player",
componentType: "Inventory",
fieldPath: "items[0].count",
value: 10
})
mcp__unity-mcp-server__set_component_field({
gameObjectPath: "/Player",
componentType: "PlayerController",
fieldPath: "targetTransform",
objectReference: { assetPath: "Assets/Prefabs/Target.prefab" }
})
mcp__unity-mcp-server__set_component_field({
gameObjectPath: "/Player",
componentType: "PlayerController",
fieldPath: "state",
enumValue: "Running"
})
modify_component vs set_component_field
| Feature | modify_component | set_component_field |
|---|
| Use case | Batch multiple properties | Precise single field |
| Nested support | ❌ Top-level only | ✅ Dot notation |
| Array elements | ❌ | ✅ [index] supported |
| Private fields | △ Serialized only | ✅ All serialized |
| Object references | △ | ✅ assetPath/guid |
List & Remove Component
mcp__unity-mcp-server__list_components({
gameObjectPath: "/Player"
})
mcp__unity-mcp-server__remove_component({
gameObjectPath: "/Player",
componentType: "OldScript"
})
mcp__unity-mcp-server__remove_component({
gameObjectPath: "/Player",
componentType: "AudioSource",
componentIndex: 1
})
Available Component Types
mcp__unity-mcp-server__get_component_types({
category: "Physics"
})
mcp__unity-mcp-server__get_component_types({
search: "Collider"
})
mcp__unity-mcp-server__get_component_types({
onlyAddable: true
})
Scene Analysis
Analyze Entire Scene
mcp__unity-mcp-server__analyze_scene_contents({
groupByType: true,
includePrefabInfo: true
})
mcp__unity-mcp-server__analyze_scene_contents({
includeMemoryInfo: true
})
Component Search
mcp__unity-mcp-server__find_by_component({
componentType: "Light",
searchScope: "scene"
})
mcp__unity-mcp-server__find_by_component({
componentType: "AudioSource",
searchScope: "all",
includeInactive: true
})
Detailed Inspection
mcp__unity-mcp-server__get_gameobject_details({
gameObjectName: "Player",
includeComponents: true,
includeMaterials: true,
includeChildren: true,
maxDepth: 3
})
mcp__unity-mcp-server__get_component_values({
gameObjectName: "Player",
componentType: "Rigidbody",
includePrivateFields: true
})
mcp__unity-mcp-server__get_object_references({
gameObjectName: "Player",
includeAssetReferences: true,
includeHierarchyReferences: true
})
Common Workflows
Scene Setup
mcp__unity-mcp-server__create_scene({
sceneName: "GameLevel",
loadScene: true
})
mcp__unity-mcp-server__create_gameobject({
name: "Environment"
})
mcp__unity-mcp-server__create_gameobject({
name: "Ground",
primitiveType: "plane",
parentPath: "/Environment",
scale: { x: 50, y: 1, z: 50 }
})
mcp__unity-mcp-server__create_gameobject({
name: "Sun"
})
mcp__unity-mcp-server__add_component({
gameObjectPath: "/Sun",
componentType: "Light",
properties: {
type: "Directional",
intensity: 1.0,
color: { r: 1, g: 0.95, b: 0.8, a: 1 }
}
})
mcp__unity-mcp-server__save_scene()
UI Canvas Setup
mcp__unity-mcp-server__create_gameobject({ name: "Canvas" })
mcp__unity-mcp-server__add_component({
gameObjectPath: "/Canvas",
componentType: "Canvas",
properties: { renderMode: "ScreenSpaceOverlay" }
})
mcp__unity-mcp-server__add_component({
gameObjectPath: "/Canvas",
componentType: "CanvasScaler"
})
mcp__unity-mcp-server__add_component({
gameObjectPath: "/Canvas",
componentType: "GraphicRaycaster"
})
mcp__unity-mcp-server__create_gameobject({
name: "StartButton",
parentPath: "/Canvas"
})
mcp__unity-mcp-server__add_component({
gameObjectPath: "/Canvas/StartButton",
componentType: "Button"
})
Physics Object Placement
mcp__unity-mcp-server__create_gameobject({
name: "PhysicsCube",
primitiveType: "cube",
position: { x: 0, y: 5, z: 0 }
})
mcp__unity-mcp-server__add_component({
gameObjectPath: "/PhysicsCube",
componentType: "Rigidbody",
properties: { mass: 1.0 }
})
Common Mistakes
1. Wrong Path Format
gameObjectPath: "Player"
gameObjectPath: "/Player"
gameObjectPath: "/Parent/Child/GrandChild"
2. Undefined Tag/Layer
tag: "CustomEnemy"
mcp__unity-mcp-server__manage_tags({
action: "add",
tagName: "CustomEnemy"
})
3. Missing Inactive Objects
mcp__unity-mcp-server__find_gameobject({ name: "HiddenObject" })
mcp__unity-mcp-server__get_hierarchy({
includeInactive: true
})
4. Performance Issues with Large Hierarchy
mcp__unity-mcp-server__get_hierarchy({
includeComponents: true,
includeTransform: true,
maxObjects: -1
})
mcp__unity-mcp-server__get_hierarchy({
nameOnly: true,
maxObjects: 100
})
mcp__unity-mcp-server__get_gameobject_details({
gameObjectName: "SpecificObject",
includeComponents: true
})
5. Losing Changes Without Save
mcp__unity-mcp-server__save_scene()
Tool Reference
| Tool | Purpose |
|---|
create_scene | Create scene |
load_scene | Load scene |
save_scene | Save scene |
list_scenes | List scenes |
get_scene_info | Get scene info |
create_gameobject | Create GameObject |
find_gameobject | Find GameObject |
modify_gameobject | Modify GameObject |
delete_gameobject | Delete GameObject |
get_hierarchy | Get hierarchy |
add_component | Add component |
modify_component | Modify component (batch) |
set_component_field | Modify field (precise) |
remove_component | Remove component |
list_components | List components |
get_component_types | List available types |
analyze_scene_contents | Analyze scene |
find_by_component | Find by component |
get_gameobject_details | Get detailed info |
get_component_values | Get property values |
manage_tags | Manage tags |
manage_layers | Manage layers |