public void CreateSimpleMesh(Vector2[] vertsToCopy, Transform transform) { Sprite spr = transform.GetComponent <SpriteRenderer>().sprite; Rect rec = spr.rect; Vector3 bound = transform.renderer.bounds.max - transform.renderer.bounds.min; //transform vertices Vector3[] vertices = new Vector3[vertsToCopy.Length]; Vector2[] uvs = new Vector2[vertsToCopy.Length]; Vector3[] normals = new Vector3[vertsToCopy.Length]; int idx = 0; for (int i = 0; i < vertices.Length; i++) { vertices [idx] = new Vector3(vertsToCopy [idx].x, vertsToCopy [idx].y, 0); normals [idx] = new Vector3(0, 0, -1); Vector2 newUv = new Vector2((vertsToCopy [idx].x / bound.x) + 0.5f, (vertsToCopy [idx].y / bound.y) + 0.5f); newUv.x *= rec.width / spr.texture.width; newUv.y *= rec.height / spr.texture.height; //Debug.Log(spr.textureRectOffset); newUv.x += (rec.x) / spr.texture.width; newUv.y += (rec.y) / spr.texture.height; uvs [idx] = newUv; idx++; } //transform triangles Puppet2D_Triangulator2 tri = new Puppet2D_Triangulator2(vertsToCopy); int[] triangles = tri.Triangulate(); finalVertices = vertices; finalTriangles = triangles; finalUvs = uvs; finalNormals = normals; }
public void CreateSimpleMesh(Vector2[] vertsToCopy, Transform transform) { Sprite spr = transform.GetComponent<SpriteRenderer>().sprite; Rect rec = spr.rect; Vector3 bound = transform.GetComponent<Renderer>().bounds.max- transform.GetComponent<Renderer>().bounds.min ; //transform vertices Vector3[] vertices = new Vector3[vertsToCopy.Length]; Vector2[] uvs = new Vector2[vertsToCopy.Length]; Vector3[] normals = new Vector3[vertsToCopy.Length]; int idx = 0; for (int i = 0; i < vertices.Length; i++) { vertices [idx] = new Vector3 (vertsToCopy [idx].x, vertsToCopy [idx].y, 0); normals [idx] = new Vector3 (0, 0, -1); Vector2 newUv = new Vector2 ((vertsToCopy [idx].x / bound.x) + 0.5f, (vertsToCopy [idx].y / bound.y) + 0.5f); newUv.x *= rec.width / spr.texture.width; newUv.y *= rec.height / spr.texture.height; //Debug.Log(spr.textureRectOffset); newUv.x += (rec.x) / spr.texture.width; newUv.y += (rec.y) / spr.texture.height; uvs [idx] = newUv; idx++; } //transform triangles Puppet2D_Triangulator2 tri = new Puppet2D_Triangulator2(vertsToCopy); int[] triangles = tri.Triangulate(); finalVertices = vertices; finalTriangles = triangles; finalUvs = uvs; finalNormals = normals; }