using UnityEngine; public class SlicedMesh : MonoBehaviour { public static Mesh CreateSlicedMesh(Vector3[] P, float[] EB) { //VERTICES & UV COORDS Vector3[] vt = new Vector3[36]; Vector2[] uv = new Vector2[36]; int[] tr = new int[54]; vt = new Vector3[] { P[4], P[0], P[1], P[5], P[5],P[1], P[2], P[6], P[6],P[2], P[3], P[7], P[8],P[4], P[5], P[9], P[9],P[5], P[6], P[10], P[10],P[6], P[7], P[11], P[12], P[8], P[9], P[13], P[13], P[9], P[10], P[14], P[14], P[10], P[11], P[15] }; float w1=EB[3]/18f; float w2=(18f-EB[1])/18f; float h1=EB[2]/18f; float h2=(18f-EB[0])/18f; uv[0]=new Vector2(0, h2); uv[1]=new Vector2(0, 1f); uv[2]=new Vector2(w1, 1f); uv[3]=new Vector2(w1,h2); uv[4]=new Vector2(w1, h2); uv[5]=new Vector2(w1, 1); uv[6]=new Vector2(w2, 1); uv[7]=new Vector2(w2, h2); uv[8]=new Vector2(w2, h2); uv[9]=new Vector2(w2, 1f); uv[10]=new Vector2(1f, 1); uv[11]=new Vector2(1, h2); //Center uv[12]=new Vector2(0, h1); uv[13]=new Vector2(0, h2); uv[14]=new Vector2(w1, h2); uv[15]=new Vector2(w1, h1); uv[16]=new Vector2(w1, h1); uv[17]=new Vector2(w1, h2); uv[18]=new Vector2(w2, h2); uv[19]=new Vector2(w2, h1); uv[20]=new Vector2(w2, h1); uv[21]=new Vector2(w2, h2); uv[22]=new Vector2(1f, h2); uv[23]=new Vector2(1, h1); //Base uv[24]=new Vector2(0, 0); uv[25]=new Vector2(0, h1); uv[26]=new Vector2(w1, h1); uv[27]=new Vector2(w1, 0f); uv[28]=new Vector2(w1, 0); uv[29]=new Vector2(w1, h1); uv[30]=new Vector2(w2, h1); uv[31]=new Vector2(w2, 0f); uv[32]=new Vector2(w2, 0); uv[33]=new Vector2(w2, h1); uv[34]=new Vector2(1, h1); uv[35]=new Vector2(1, 0); tr[0]=0; tr[1]=1; tr[2]=2; tr[3]=0; tr[4]=2; tr[5]=3; tr[6]=4; tr[7]=5; tr[8]=6; tr[9]=4; tr[10]=6; tr[11]=7; tr[12]=8; tr[13]=9; tr[14]=10; tr[15]=8; tr[16]=10; tr[17]=11; //center tr[18]=12; tr[19]=13; tr[20]=14; tr[21]=12; tr[22]=14; tr[23]=15; tr[24]=16; tr[25]=17; tr[26]=18; tr[27]=16; tr[28]=18; tr[29]=19; tr[30]=20; tr[31]=21; tr[32]=22; tr[33]=20; tr[34]=22; tr[35]=23; //bas tr[36]=24; tr[37]=25; tr[38]=26; tr[39]=24; tr[40]=26; tr[41]=27; tr[42]=28; tr[43]=29; tr[44]=30; tr[45]=28; tr[46]=30; tr[47]=31; tr[48]=32; tr[49]=33; tr[50]=34; tr[51]=32; tr[52]=34; tr[53]=35; Mesh mesh = new Mesh(); mesh.vertices = vt; mesh.uv = uv; mesh.triangles = tr; mesh.RecalculateNormals(); mesh.RecalculateBounds(); return mesh; } }