MeshCreator.genUV C# (CSharp) Method

genUV() private method

private genUV ( Vector3 vertices ) : Vector2[]
vertices Vector3
return Vector2[]
    private Vector2[] genUV(Vector3[] vertices)
    {
        if(spriteRenderer != null) {
            var prevRot = spriteRenderer.transform.rotation;
            spriteRenderer.transform.rotation = Quaternion.identity;

            float texHeight = (float)(spriteRenderer.sprite.texture.height);
            float texWidth = (float)(spriteRenderer.sprite.texture.width);

            Vector3 botLeft = spriteRenderer.transform.InverseTransformPoint(new Vector3(spriteRenderer.bounds.min.x, spriteRenderer.bounds.min.y, 0));

            Vector2 spriteTextureOrigin;
            spriteTextureOrigin.x = (float)spriteRenderer.sprite.rect.x;
            spriteTextureOrigin.y = (float)spriteRenderer.sprite.rect.y;

            Vector2[] uv = new Vector2[vertices.Length];
            for(int i = 0; i < vertices.Length; i++) {
                float x = (vertices[i].x - botLeft.x) * spriteRenderer.sprite.pixelsPerUnit;
                float y = (vertices[i].y - botLeft.y) * spriteRenderer.sprite.pixelsPerUnit;

                uv[i] = new Vector2(((x + spriteTextureOrigin.x) / texWidth), ((y + spriteTextureOrigin.y) / texHeight));
            }

            spriteRenderer.transform.rotation = prevRot;
            return uv;
        }
        else {
            return null;
        }
    }