public Mesh GenerateMesh(int w) { width = w; halfPix = 0.5f / width; Mesh m = new Mesh(); int pixls = width * width; verts = new vert[pixls * 4]; tris.Clear(); Vector3[] fverts = new Vector3[verts.Length]; List <Vector4> uvs = new List <Vector4>();//[verts.Length]; for (int i = 0; i < verts.Length; i++) { uvs.Add(new Vector4()); } for (int x = 0; x < width; x++) { for (int y = 0; y < width; y++) { for (int p = 0; p < 4; p++) { int ind = getIndOf(x, y, (picV)p); verts[ind] = new vert(x, y, (picV)p, thickness); fverts[ind] = verts[ind].pos; uvs[ind] = verts[ind].uv; } FillPixel(x, y); if (thickness > 0) { thickness = Mathf.Min(thickness, 0.9f); if (x < width - 1) { JoinRight(x, y); } if (y < width - 1) { JoinDown(x, y); } if ((x < width - 1) && (y < width - 1)) { JoinDiagonal(x, y); } } } } m.vertices = fverts; m.SetUVs(0, uvs); m.triangles = tris.ToArray(); //m.UploadMeshData(false); return(m); }
var(vert, hor) = ((nextVerDir, verCurrent.power), (nextHorDir, horCurrent.power));