Search Unity

ProBuilder Merge Faces at Runtime

Discussion in 'World Building' started by opacicpetar96, Feb 15, 2021.

  1. opacicpetar96

    opacicpetar96

    Joined:
    Nov 20, 2019
    Posts:
    26
    Hello everyone!

    I'm curious if it's possible to merge faces of a ProBuilderMesh at runtime?
    When I create a Mesh with this code:
    Code (CSharp):
    1. quad = ProBuilderMesh.Create(
    2.             new Vector3[] {
    3.                 new Vector3(0f,0f,0f),
    4.                 new Vector3(1f,0f,0f),
    5.                 new Vector3(0f,1f,0f),
    6.                 new Vector3(1f,1f,0f),
    7.                 new Vector3(0f,0f,0f),
    8.                 new Vector3(1f,0f,0f),
    9.                 new Vector3(0f,1f,0f),
    10.                 new Vector3(1f,1f,0f),
    11.             },
    12.             new Face[] {
    13.                 new Face(new int[] {0,2,1}),
    14.                 new Face(new int[] {2,3,1}),
    15.                 new Face(new int[] {5,6,4}),
    16.                 new Face(new int[] {5,7,6}),
    17.             });
    18.  
    19.         Debug.Log("Quad faces: " + quad.faces.Count);
    20.         quad.SetMaterial(quad.faces, quadMaterial);
    21.         quad.Refresh();
    22.         quad.ToMesh();
    the faces of the Quad are split into 2 parts (2 triangles at front and back) but that makes the extrusion a bit complicated, so I would like to merge those faces into one and then extrude it dynamically at runtime. But I couldn't find any good option for merging, the only method that looked like it could help is the ProBuilderMesh.MergeVertices() method but I couldn't get it to work. Any suggestions?