Is it possible to remove part of a mesh?

I looked around at previous answers and most of them seemed to say that its possible, but improbable.

I’m currently in the design stage (I haven’t coded anything, just figuring out what TO code), but I’m creating a 3-D Liero game. Essentially, I’ll have a big cube of dirt (implemented voxel style) with a couple of worms blowing their way through it. My original idea to implement the terrain was that whenever a voxel was destroyed it would call on its neighbors, if they were there, to create a mesh face and then join that face to the larger “terrain” mesh in order to help performance via Mesh.CombineMeshes (nothing says bad fps like 10000 meshes). I’m not going to bother with diagonals or anything, and it should look blocky (kinda like minecraft, but with much much smaller cubes).

The problem is that when I remove a voxel I’ll also have to remove any faces that it had previously generated. It wouldn’t be hard to locate all the potential vertices, and triangles, that it could have created. So using that is it possible to remove those vertices (and their potential triangles) from the overall mesh? If so, how? What functions would I need and what data?

The standard method is to build mesh chunks, and rebuild them as necessary. Don’t use Mesh.CombineMeshes; that adds an unnecessary layer of inefficiency. So you don’t need to track vertices or anything, just rebuild the relevant chunk when the player removes or adds a voxel.