Before calling any skill in this module: if you are about to call a skill with parameters guessed from its name or description, STOP — read this file (or fetch its schema via GET /skills/recommend?includeSchema=true) first. If you already have the parameter definitions from recommend/schema, you may proceed straight to dryRun.
Triggers
- Blocking out levels
- Building or editing ProBuilder geometry
- Prototyping shapes in-editor
- 搭建关卡灰盒、创建或编辑 ProBuilder 几何体、在编辑器内快速搭形
Unity ProBuilder Skills
Use this module for editable ProBuilder meshes, not regular primitive GameObjects. It is best for blockout, level geometry, and procedural mesh refinement.
Requires: com.unity.probuilder package.
Batch-first: For scene blockout or level generation, prefer probuilder_create_batch when creating 2+ shapes.
Guardrails
Operating Mode (v1.9 three-tier):
- Approval (default): query skills (e.g.
probuilder_get_info, probuilder_get_vertices) run directly. Create/modify skills are FullAuto — call once, get MODE_RESTRICTED, run the grant protocol; a successful /permission/grant executes the skill server-side and returns the result in the same response.
- Auto / Bypass: SemiAuto and FullAuto run directly.
- Auto-forbidden in this module:
probuilder_combine_meshes (SkillOperation.Modify | Delete, the Delete bit triggers NeverInSemi). It is callable only under Bypass mode or after the user adds it to the Allowlist; the grant flow returns MODE_FORBIDDEN. Note probuilder_delete_faces is Operation = SkillOperation.Modify only and remains grantable under Approval/Auto.
- When
com.unity.probuilder is missing, every skill returns a package-missing diagnostic instead of executing.
DO NOT (common hallucinations):
probuilder_create_mesh does not exist -> use probuilder_create_shape
probuilder_edit_face does not exist -> use the specific face skills such as probuilder_extrude_faces, probuilder_delete_faces, probuilder_merge_faces
probuilder_set_material and probuilder_set_face_material are different -> whole object vs selected faces
- Regular meshes do not become ProBuilder meshes automatically
- Mesh rebuild calls (
ToMesh() + Refresh()) are already handled by the skills. Do not invent a manual rebuild step
Routing:
- For ordinary primitive objects without editable topology -> use
gameobject_create
- For material asset creation or shader work -> use
material
- For large blockout generation -> combine this module with
material and light, but keep geometry creation here
Object Targeting
Most edit/query skills accept one of:
Prefer instanceId when multiple scene objects share the same name.
Skills
Create and Batch
| Skill |
Use |
Key parameters |
probuilder_create_shape |
Create a parametric ProBuilder shape |
shape, name?, x/y/z?, sizeX/Y/Z?, rotX/Y/Z? |
probuilder_create_batch |
Create multiple shapes in one call |
items, defaultParent? |
Supported shape values: Cube, Sphere, Cylinder, Cone, Torus, Prism, Arch, Pipe, Stairs, Door, Plane.
Face and Edge Editing
| Skill |
Use |
Key parameters |
probuilder_extrude_faces |
Extrude selected faces |
target, faceIndexes?, distance?, method? |
probuilder_delete_faces |
Delete faces by index |
target, faceIndexes |
probuilder_merge_faces |
Merge faces into one |
target, faceIndexes? |
probuilder_flip_normals |
Reverse face direction |
target, faceIndexes? |
probuilder_detach_faces |
Split faces from shared vertices |
target, faceIndexes?, deleteSourceFaces? |
probuilder_bevel_edges |
Chamfer edges |
target, edgeIndexes?, amount? |
probuilder_extrude_edges |
Extrude edges outward |
target, edgeIndexes, distance?, extrudeAsGroup? |
probuilder_bridge_edges |
Bridge two edges with new face |
target, edgeA, edgeB, allowNonManifold? |
Mesh, Vertex, UV, Material
| Skill |
Use |
Key parameters |
probuilder_subdivide |
Add detail by subdivision |
target, faceIndexes? |
probuilder_conform_normals |
Make normals point consistently outward |
target, faceIndexes? |
probuilder_move_vertices |
Offset vertices by delta |
target, vertexIndexes, deltaX/Y/Z? |
probuilder_set_vertices |
Set absolute vertex positions |
target, vertices |
probuilder_get_vertices |
Query vertex positions |
target, vertexIndexes?, verbose? |
probuilder_weld_vertices |
Merge close vertices |
target, vertexIndexes, radius? |
probuilder_project_uv |
Box-project UVs |
target, faceIndexes?, channel? |
probuilder_set_face_material |
Assign material to faces |
target, faceIndexes?, materialPath?, submeshIndex? |
probuilder_set_material |
Assign whole-object material or quick color |
target, materialPath?, r/g/b/a? |
probuilder_combine_meshes |
Merge multiple meshes |
names |
Query and Pivot
| Skill |
Use |
Key parameters |
probuilder_get_info |
Get face/vertex/material stats |
target |
probuilder_center_pivot |
Center or reposition pivot |
target, worldX/Y/Z? |
Blockout Workflow
- Create major volumes with
probuilder_create_batch.
- Verify traversal and gameplay scale before adding detail.
- Refine surfaces with face/edge operations.
- Use vertex edits for ramps, slopes, and irregular silhouettes.
- Apply quick colors or real materials after layout stabilizes.
Minimal Example
import unity_skills
unity_skills.call_skill("probuilder_create_batch", items=[
{"shape": "Cube", "name": "Ground", "sizeX": 20, "sizeY": 0.5, "sizeZ": 12, "y": -0.25},
{"shape": "Cube", "name": "Platform_A", "sizeX": 3, "sizeY": 0.3, "sizeZ": 3, "x": 4, "y": 1.5},
{"shape": "Cube", "name": "Ramp", "sizeX": 3, "sizeY": 1, "sizeZ": 5, "x": 8, "y": 0.5}
])
unity_skills.call_skill("probuilder_move_vertices",
name="Ramp",
vertexIndexes="4,5",
deltaY=-0.8
)
unity_skills.call_skill("probuilder_set_material",
name="Platform_A",
r=0.2, g=0.6, b=1.0
)
Important Notes
- ProBuilder objects keep editable topology through
ProBuilderMesh.
- Use
probuilder_get_info before face edits and probuilder_get_vertices before vertex edits.
- MeshCollider on physics-driven props must be convex.
- Quick color assignment is fine for prototype passes; use material assets for production.
- Package missing errors are expected if ProBuilder is not installed.
Exact Signatures
Exact names, parameters, defaults, and returns are defined by GET /skills/schema or unity_skills.get_skill_schema(), not by this file.
Load MODELING_REFERENCE.md for scene design heuristics, furniture decomposition, detailed examples, and extended modeling tips.
1---2name: unity-probuilder3description: Model editable meshes with ProBuilder for blockout4---5
6> **Before calling any skill in this module:** if you are about to call a skill with parameters guessed from its name or description, STOP — read this file (or fetch its schema via `GET /skills/recommend?includeSchema=true`) first. If you already have the parameter definitions from recommend/schema, you may proceed straight to dryRun.
7
8## Triggers
9- Blocking out levels
10- Building or editing ProBuilder geometry
11- Prototyping shapes in-editor
12- 搭建关卡灰盒、创建或编辑 ProBuilder 几何体、在编辑器内快速搭形
13
14# Unity ProBuilder Skills
15
16Use this module for editable ProBuilder meshes, not regular primitive GameObjects. It is best for blockout, level geometry, and procedural mesh refinement.
17
18> **Requires**: `com.unity.probuilder` package.
19> **Batch-first**: For scene blockout or level generation, prefer `probuilder_create_batch` when creating `2+` shapes.
20
21## Guardrails
22
23**Operating Mode** (v1.9 three-tier):
24- **Approval** (default): query skills (e.g. `probuilder_get_info`, `probuilder_get_vertices`) run directly. Create/modify skills are FullAuto — call once, get `MODE_RESTRICTED`, run the grant protocol; a successful `/permission/grant` executes the skill server-side and returns the result in the same response.
25- **Auto** / **Bypass**: SemiAuto and FullAuto run directly.
26- Auto-forbidden in this module: `probuilder_combine_meshes` (`SkillOperation.Modify | Delete`, the `Delete` bit triggers NeverInSemi). It is callable only under Bypass mode or after the user adds it to the Allowlist; the grant flow returns `MODE_FORBIDDEN`. Note `probuilder_delete_faces` is `Operation = SkillOperation.Modify` only and remains grantable under Approval/Auto.
27- When `com.unity.probuilder` is missing, every skill returns a package-missing diagnostic instead of executing.
28
29**DO NOT** (common hallucinations):
30- `probuilder_create_mesh` does not exist -> use `probuilder_create_shape`
31- `probuilder_edit_face` does not exist -> use the specific face skills such as `probuilder_extrude_faces`, `probuilder_delete_faces`, `probuilder_merge_faces`
32- `probuilder_set_material` and `probuilder_set_face_material` are different -> whole object vs selected faces
33- Regular meshes do not become ProBuilder meshes automatically
34- Mesh rebuild calls (`ToMesh()` + `Refresh()`) are already handled by the skills. Do not invent a manual rebuild step
35
36**Routing**:
37- For ordinary primitive objects without editable topology -> use `gameobject_create`
38- For material asset creation or shader work -> use `material`
39- For large blockout generation -> combine this module with `material` and `light`, but keep geometry creation here
40
41## Object Targeting
42
43Most edit/query skills accept one of:
44- `name`
45- `instanceId`
46- `path`
47
48Prefer `instanceId` when multiple scene objects share the same name.
49
50## Skills
51
52### Create and Batch
53
54| Skill | Use | Key parameters |
55|-------|-----|----------------|
56| `probuilder_create_shape` | Create a parametric ProBuilder shape | `shape`, `name?`, `x/y/z?`, `sizeX/Y/Z?`, `rotX/Y/Z?` |
57| `probuilder_create_batch` | Create multiple shapes in one call | `items`, `defaultParent?` |
58
59Supported `shape` values: `Cube`, `Sphere`, `Cylinder`, `Cone`, `Torus`, `Prism`, `Arch`, `Pipe`, `Stairs`, `Door`, `Plane`.
60
61### Face and Edge Editing
62
63| Skill | Use | Key parameters |
64|-------|-----|----------------|
65| `probuilder_extrude_faces` | Extrude selected faces | target, `faceIndexes?`, `distance?`, `method?` |
66| `probuilder_delete_faces` | Delete faces by index | target, `faceIndexes` |
67| `probuilder_merge_faces` | Merge faces into one | target, `faceIndexes?` |
68| `probuilder_flip_normals` | Reverse face direction | target, `faceIndexes?` |
69| `probuilder_detach_faces` | Split faces from shared vertices | target, `faceIndexes?`, `deleteSourceFaces?` |
70| `probuilder_bevel_edges` | Chamfer edges | target, `edgeIndexes?`, `amount?` |
71| `probuilder_extrude_edges` | Extrude edges outward | target, `edgeIndexes`, `distance?`, `extrudeAsGroup?` |
72| `probuilder_bridge_edges` | Bridge two edges with new face | target, `edgeA`, `edgeB`, `allowNonManifold?` |
73
74### Mesh, Vertex, UV, Material
75
76| Skill | Use | Key parameters |
77|-------|-----|----------------|
78| `probuilder_subdivide` | Add detail by subdivision | target, `faceIndexes?` |
79| `probuilder_conform_normals` | Make normals point consistently outward | target, `faceIndexes?` |
80| `probuilder_move_vertices` | Offset vertices by delta | target, `vertexIndexes`, `deltaX/Y/Z?` |
81| `probuilder_set_vertices` | Set absolute vertex positions | target, `vertices` |
82| `probuilder_get_vertices` | Query vertex positions | target, `vertexIndexes?`, `verbose?` |
83| `probuilder_weld_vertices` | Merge close vertices | target, `vertexIndexes`, `radius?` |
84| `probuilder_project_uv` | Box-project UVs | target, `faceIndexes?`, `channel?` |
85| `probuilder_set_face_material` | Assign material to faces | target, `faceIndexes?`, `materialPath?`, `submeshIndex?` |
86| `probuilder_set_material` | Assign whole-object material or quick color | target, `materialPath?`, `r/g/b/a?` |
87| `probuilder_combine_meshes` | Merge multiple meshes | `names` |
88
89### Query and Pivot
90
91| Skill | Use | Key parameters |
92|-------|-----|----------------|
93| `probuilder_get_info` | Get face/vertex/material stats | target |
94| `probuilder_center_pivot` | Center or reposition pivot | target, `worldX/Y/Z?` |
95
96## Blockout Workflow
97
981. Create major volumes with `probuilder_create_batch`.
992. Verify traversal and gameplay scale before adding detail.
1003. Refine surfaces with face/edge operations.
1014. Use vertex edits for ramps, slopes, and irregular silhouettes.
1025. Apply quick colors or real materials after layout stabilizes.
103
104## Minimal Example
105
106```python
107import unity_skills
108
109unity_skills.call_skill("probuilder_create_batch", items=[
110 {"shape": "Cube", "name": "Ground", "sizeX": 20, "sizeY": 0.5, "sizeZ": 12, "y": -0.25},
111 {"shape": "Cube", "name": "Platform_A", "sizeX": 3, "sizeY": 0.3, "sizeZ": 3, "x": 4, "y": 1.5},
112 {"shape": "Cube", "name": "Ramp", "sizeX": 3, "sizeY": 1, "sizeZ": 5, "x": 8, "y": 0.5}
113])
114
115unity_skills.call_skill("probuilder_move_vertices",
116 name="Ramp",
117 vertexIndexes="4,5",
118 deltaY=-0.8
119)
120
121unity_skills.call_skill("probuilder_set_material",
122 name="Platform_A",
123 r=0.2, g=0.6, b=1.0
124)
125```
126
127## Important Notes
128
1291. ProBuilder objects keep editable topology through `ProBuilderMesh`.
1302. Use `probuilder_get_info` before face edits and `probuilder_get_vertices` before vertex edits.
1313. MeshCollider on physics-driven props must be convex.
1324. Quick color assignment is fine for prototype passes; use material assets for production.
1335. Package missing errors are expected if ProBuilder is not installed.
134
135## Exact Signatures
136
137Exact names, parameters, defaults, and returns are defined by `GET /skills/schema` or `unity_skills.get_skill_schema()`, not by this file.
138Load `MODELING_REFERENCE.md` for scene design heuristics, furniture decomposition, detailed examples, and extended modeling tips.