| name | gameobject-create |
| description | Create a new GameObject in the currently opened Prefab or active Scene, optionally parented under another GameObject and pre-positioned. Pass `primitiveType` to spawn a Unity primitive (Cube, Sphere, etc.) instead of an empty GameObject. |
GameObject / Create
Create a new GameObject in opened Prefab or in a Scene. If needed - provide proper 'position', 'rotation' and 'scale' to reduce amount of operations.
Inputs
name — required non-empty name.
parentGameObjectRef (optional) — when provided, the new GameObject is parented under this one (SetParent(parent, worldPositionStays: false)); otherwise it's created at scene/prefab root.
position / rotation / scale — optional transform; default to zero / zero / one.
isLocalSpace — when true, applies the transform in local space relative to the parent.
primitiveType (optional) — when set, the GameObject is created via GameObject.CreatePrimitive (adds the appropriate renderer/collider for the primitive shape).
How to Call
unity-mcp-cli run-tool gameobject-create --input '{
"name": "string_value",
"parentGameObjectRef": "string_value",
"position": "string_value",
"rotation": "string_value",
"scale": "string_value",
"isLocalSpace": false,
"primitiveType": "string_value"
}'
For complex input (multi-line strings, code), save the JSON to a file and use:
unity-mcp-cli run-tool gameobject-create --input-file args.json
Or pipe via stdin (recommended):
unity-mcp-cli run-tool gameobject-create --input-file - <<'EOF'
{"param": "value"}
EOF
Troubleshooting
If unity-mcp-cli is not found, either install it globally (npm install -g unity-mcp-cli) or use npx unity-mcp-cli instead.
Read the /unity-initial-setup skill for detailed installation instructions.
Input
| Name | Type | Required | Description |
|---|
name | string | Yes | Name of the new GameObject. |
parentGameObjectRef | any | No | Parent GameObject reference. If not provided, the GameObject will be created at the root of the scene or prefab. |
position | any | No | Transform position of the GameObject. |
rotation | any | No | Transform rotation of the GameObject. Euler angles in degrees. |
scale | any | No | Transform scale of the GameObject. |
isLocalSpace | boolean | No | World or Local space of transform. |
primitiveType | any | No | |
Input JSON Schema
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"parentGameObjectRef": {
"$ref": "#/$defs/AIGD.GameObjectRef"
},
"position": {
"$ref": "#/$defs/UnityEngine.Vector3"
},
"rotation": {
"$ref": "#/$defs/UnityEngine.Vector3"
},
"scale": {
"$ref": "#/$defs/UnityEngine.Vector3"
},
"isLocalSpace": {
"type": "boolean"
},
Output
Output JSON Schema
{
"type": "object",
"properties": {
"result": {
"$ref": "#/$defs/AIGD.GameObjectRef",
"description": "Find GameObject in opened Prefab or in the active Scene."
}
},
"$defs": {
"System.Type": {
"type": "string"
},
"AIGD.GameObjectRef": {
"type": "object",
"properties": {
"instanceID": {
"type": "integer",
"description": "instanceID of the UnityEngine.Object. If it is '0' and 'path', 'name', 'assetPath' and 'assetGuid' is not provided, empty or null, then it will be used as 'null'. Priority: 1 (Recommended)"
}