public void Setup()
    {
        ProBuilderMesh shape1 = ShapeFactory.Instantiate <Cube>();

        shape1.transform.position = Vector3.zero - shape1.GetComponent <MeshRenderer>().bounds.center;

        ProBuilderMesh shape2 = ShapeFactory.Instantiate <Cube>();

        shape2.transform.position = Vector3.zero - shape2.GetComponent <MeshRenderer>().bounds.center;

        shape1.AddToFaceSelection(0);
        shape1.AddToFaceSelection(1);
        shape1.AddToFaceSelection(2);
        shape1.SetMaterial(shape1.GetSelectedFaces(), BuiltinMaterials.facePickerMaterial);
        shape1.ClearSelection();
        shape1.AddToFaceSelection(3);
        shape1.AddToFaceSelection(4);
        shape1.AddToFaceSelection(5);
        shape1.SetMaterial(shape1.GetSelectedFaces(), null);
        shape1.ClearSelection();

        shape2.AddToFaceSelection(0);
        shape2.AddToFaceSelection(1);
        shape2.AddToFaceSelection(2);
        shape2.SetMaterial(shape2.GetSelectedFaces(), BuiltinMaterials.colliderMaterial);
        shape2.ClearSelection();
        shape2.AddToFaceSelection(3);
        shape2.AddToFaceSelection(4);
        shape2.AddToFaceSelection(5);
        shape2.SetMaterial(shape2.GetSelectedFaces(), BuiltinMaterials.facePickerMaterial);
        shape2.ClearSelection();

        selectables = new ProBuilderMesh[]
        {
            shape1,
            shape2
        };
    }
        private static void TextureGroupSelectedFaces(ProBuilderMesh pb)//, pb_Face face)
        {
            if (pb.selectedFaceCount < 1)
            {
                return;
            }

            Face[] faces = pb.GetSelectedFaces();

            AutoUnwrapSettings cont_uv = faces[0].uv;

            int texGroup = pb.GetUnusedTextureGroup();

            UndoUtility.RecordSelection(pb, "Create Texture Group" + textureGroup);

            foreach (Face f in faces)
            {
                f.uv           = new AutoUnwrapSettings(cont_uv);
                f.textureGroup = texGroup;
            }
        }