public static List<Mesh> ConvertToMeshes(List<Triangle> triangles, string name = "TriangleMesh")
{
List<Mesh> res = new List<Mesh> ();
Mesh mesh = new Mesh();
res.Add (mesh);
mesh.name = name+"_"+res.Count;
List<int> indices = new List<int>();
List<Vector3> positions = new List<Vector3>();
List<Vector2> uvs = new List<Vector2>();
int i = 0;
foreach (var t in triangles){
for (int j=0;j<3;j++){
indices.Add(i);
positions.Add(t.points[j].ToVector3());
uvs.Add(t.uvs[j].ToVector2());
i++;
}
if (i >= 65534) {
// save current mesh data
mesh.vertices = positions.ToArray();
mesh.uv = uvs.ToArray();
mesh.SetIndices(indices.ToArray(), MeshTopology.Triangles,0);
// reset mesh data
mesh = new Mesh();
res.Add (mesh);
mesh.name = name+"_"+res.Count;
indices = new List<int>();
positions = new List<Vector3>();
uvs = new List<Vector2>();
i = 0;
}
}
mesh.vertices = positions.ToArray();
mesh.uv = uvs.ToArray();
mesh.SetIndices(indices.ToArray(), MeshTopology.Triangles,0);
return res;
}