3.8 KiB
| name | description | metadata | ||
|---|---|---|---|---|
| probuilder-create-shape | Create a new editable `ProBuilderMesh` GameObject in the active scene from a `ShapeType` primitive (Cube, Cylinder, Sphere, Plane, Prism, Cone, Stair, etc.). Optionally set name, parent, transform, size, and world/local space. |
|
Create a ProBuilder shape
Create a new editable ProBuilderMesh GameObject in the active scene. ProBuilder shapes are editable 3D meshes that can be further modified with the rest of the ProBuilder tools (extrude, bevel, subdivide, etc.).
Inputs
shapeType—ShapeTypeenum (Cube, Cylinder, Sphere, Plane, Prism, Cone, Stair, Door, Pipe, Arch, Sprite, Torus, etc.).name— optional GameObject name.parentGameObjectRef— optional parent; root of the scene when omitted.position,rotation,scale— optionalVector3transform values. Rotation is euler degrees. Defaults: zero / zero / one.size—Vector3width/height/depth of the generated shape. Default(1, 1, 1).isLocalSpace— whentrue, position/rotation/scale are interpreted in the parent's local space; otherwise world space.
Behavior
Uses ShapeGenerator.CreateShape with PivotLocation.Center, applies the transform values, rebuilds the mesh, marks dirty, and repaints the Editor. The whole call runs on the Unity main thread.
How to Call
unity-mcp-cli run-tool probuilder-create-shape --input '{
"shapeType": "string_value",
"name": "string_value",
"parentGameObjectRef": "string_value",
"position": "string_value",
"rotation": "string_value",
"scale": "string_value",
"size": "string_value",
"isLocalSpace": false
}'
For complex input (multi-line strings, code), save the JSON to a file and use:
unity-mcp-cli run-tool probuilder-create-shape --input-file args.jsonOr pipe via stdin (recommended):
unity-mcp-cli run-tool probuilder-create-shape --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 |
|---|---|---|---|
shapeType |
string |
Yes | The type of shape to create. |
name |
string |
No | Name of the new GameObject. |
parentGameObjectRef |
string |
No | Parent GameObject reference. If not provided, the shape will be created at the root of the scene. RQL: GameObjectRef |
position |
string |
No | Position of the shape in world or local space. RQL: Vector3 |
rotation |
string |
No | Rotation of the shape in euler angles (degrees). RQL: Vector3 |
scale |
string |
No | Scale of the shape. RQL: Vector3 |
size |
string |
No | Size of the shape (width, height, depth). Default is (1, 1, 1). RQL: Vector3 |
isLocalSpace |
boolean |
No | If true, position/rotation/scale are in local space relative to parent. |
Input JSON Schema
{
"type": "object",
"properties": {
"shapeType": {
"type": "string",
"enum": [
"Cube",
"Stair",
"CurvedStair",
"Prism",
"Cylinder",
"Plane",
"Door",
"Pipe",
"Cone",
"Sprite",
"Arch",
"Sphere",
"Torus"
]
},
"name": {
"type": "string"
},
"parentGameObjectRef": {
"type": "string"
},
"position": {
"type": "string"
},
"rotation": {
"type": "string"
},
"scale": {
"type": "string"
},
"size": {
"type": "string"
},
"isLocalSpace": {
"type": "boolean"
}
},
"required": [
"shapeType"
]
}
Output
This tool does not return structured output.