t1k:unity:rendering:probuilder
| Field | Value |
|---|---|
| Module | rendering |
| Version | 3.1.7 |
| Effort | medium |
| Tools | — |
Keywords: 3D modeling, level design, ProBuilder, unity
How to invoke
Section titled “How to invoke”/t1k:unity:rendering:probuilderUnity ProBuilder
Section titled “Unity ProBuilder”Terminology
Section titled “Terminology”- ProBuilderMesh — Component storing mesh data (positions, UVs, faces, colors)
- Face — Defines face geometry with triangle indices, material, smoothing group
- ShapeGenerator — Creates primitive shapes (cube, cylinder, sphere, etc.)
Skill Purpose
Section titled “Skill Purpose”Reference for Unity ProBuilder 6.x (Unity 6). Covers programmatic mesh creation, shape generation, face/edge/vertex editing, material assignment, UV editing, and exporting to standard Unity meshes. Focused on editor scripting for level geometry and modular tile/obstacle creation.
Package:
com.unity.probuilder6.0.9 (Unity 6 compatible) Related skills:dots-ecs(ECS baking) ·dots-graphics(ECS rendering)
When This Skill Triggers
Section titled “When This Skill Triggers”- Creating geometry with ProBuilder (shapes, tiles, obstacles, level pieces)
- Using
ShapeGenerator,ProBuilderMesh.Create(),ProBuilderMesh.CreateShapeFromPreset() - Editing faces, edges, vertices programmatically
- Assigning materials per-face, vertex colors
- Exporting ProBuilder meshes to standard Unity Mesh assets
- Building modular level geometry (tiles, walls, floors)
- Setting up UV editing, auto-UV, manual UV
Quick Reference
Section titled “Quick Reference”| Task | Reference File |
|---|---|
| Programmatic mesh creation, ShapeGenerator, Face/Vertex | mesh-creation-guide.md |
| Material assignment, vertex colors, UV editing | materials-uvs-guide.md |
| Export to standard Mesh, stripping ProBuilderMesh | export-workflow-guide.md |
Namespaces
Section titled “Namespaces”using UnityEngine.ProBuilder; // Runtime: ProBuilderMesh, Face, Vertex, mathusing UnityEngine.ProBuilder.MeshOperations; // Runtime: topology, I/O, merge, subdivideusing UnityEditor.ProBuilder; // Editor: menus, windows, toolbar extensionsKey Conventions
Section titled “Key Conventions”Core workflow — create or modify:
ProBuilderMesh.Create(positions, faces)orShapeGenerator.CreateShape(ShapeType.Cube)- Modify vertices, faces, edges via ProBuilderMesh API
- Call
.ToMesh()to compile to UnityEngine.Mesh - Call
.Refresh()to rebuild UVs, tangents, normals - In Editor:
UnityEditor.ProBuilder.EditorMeshUtility.Optimize()for final optimization
Critical rules:
- Modify
ProBuilderMeshdata, NOTMeshFilter.sharedMeshdirectly - Always call
.ToMesh()then.Refresh()after any mesh modification - To strip ProBuilder dependency: export mesh via
MeshUtilityor saveMeshFilter.sharedMeshas.asset - For flat shading: set smoothing group to 0 per face, or use unshared vertices
- For level geometry: save as prefab after stripping ProBuilderMesh component
Common gotchas:
| Issue | Fix |
|---|---|
| Mesh not updating after code changes | Call .ToMesh() then .Refresh() |
| ProBuilder dependency in runtime build | Strip ProBuilderMesh, save Mesh as .asset |
| Faces sharing smoothing = smooth normals | Set face.smoothingGroup = 0 for flat shading |
| UV seams visible | Use face.uv auto-UV settings or manual UV unwrap |
| ShapeGenerator shape wrong size | Set localScale on transform after creation |
Documentation
Section titled “Documentation”Gotchas
Section titled “Gotchas”- ProBuilder meshes are NOT static-batchable by default — flag manually or batching skips them.
- ProBuilderize → Lightmap UVs requires explicit Generate — auto-bake skips ProBuilder geometry without uvs.
- Boolean operations on complex meshes can produce non-manifold geometry — validate with mesh checker before merging.