void Start () {
for(int i=0;i < 3;i++)
{
GameObject txa = new GameObject();
txa.AddComponent(typeof(MeshFilter));
txa.AddComponent(typeof(MeshRenderer));
MeshFilter mf = txa.GetComponent<MeshFilter>();
mf.sharedMesh = createMesh();
MeshRenderer mrd = txa.GetComponent<MeshRenderer>();
mrd.sharedMaterials = vtext.materials;
}
// mf.mesh = mesh;
}
private Mesh createMesh()
{
string[] meshstr = meshtxt.text.Split('|');
Mesh clonemesh = JsonConvert.DeserializeObject<Mesh>(meshstr[0]);
int[] sidetriInfo = JsonConvert.DeserializeObject<int[]>(meshstr[1]);
int[] triangles = clonemesh.triangles;
clonemesh.triangles = new int[triangles.Length];
//clonemesh.se
clonemesh.subMeshCount = 3;
if (sidetriInfo[0] > 0)
{
int[] facetri = new int[sidetriInfo[0]];
for (int m = 0; m < sidetriInfo[0]; m++)
facetri[m] = triangles[m];
clonemesh.SetTriangles(facetri, 0);
}
if (sidetriInfo[1] > 0)
{
int[] sidetri = new int[sidetriInfo[1]];
for (int m = sidetriInfo[0]; m < sidetriInfo[0] + sidetriInfo[1]; m++)
sidetri[m - sidetriInfo[0]] = triangles[m];
clonemesh.SetIndices(sidetri, MeshTopology.Triangles, 1);
}
if (sidetriInfo[2] > 0)
{
int[] frametri = new int[sidetriInfo[2]];
int ks = sidetriInfo[0] + sidetriInfo[1];
for (int m = ks; m < ks + sidetriInfo[2]; m++)
frametri[m - ks] = triangles[m];
clonemesh.SetIndices(frametri, MeshTopology.Triangles, 2);
}
clonemesh.RecalculateBounds();
return clonemesh;
}