private void RebuildMesh()
{
gen_vertices.Clear();
gen_uv.Clear();
gen_triangles.Clear();
if (mesh != null) { DestroyImmediate(mesh); }
mesh = new Mesh();
mesh.name = "Generated Terrain Mesh";
TriangulateCellRows();
RebuildColliders();
mesh.vertices = gen_vertices.ToArray();
mesh.triangles = gen_triangles.ToArray();
mesh.uv = gen_uv.ToArray();
mesh.RecalculateNormals();
GetComponent<MeshFilter>().mesh = mesh;
gen_vertices.Clear();
gen_uv.Clear();
gen_triangles.Clear();
}