Как задать UV для динамически изменяемого объекта в Unity?
Есть некоторый меш, который можно редактировать - изменять формы, двигать вершины и т.д. Ключевой проблемой является рисование по мешу после деформаций. Наши рисования начинают выглядеть как растянутые кляксы. Сами объекты сложные, с десятками тысяч полигонов. Я пытался пересчитывать UV:
mesh = GetComponent<MeshFilter>().sharedMesh;
meshCollider = GetComponent<MeshCollider>();
meshFilter = GetComponent<MeshFilter>();
vertices = mesh.vertices.ToList();
List<Vector3> newVert = new List<Vector3>(mesh.vertices);
for(int i = 0; i < newVert.Count; i++)
{
newVert[i] = transform.TransformPoint(mesh.vertices[i]);
}
mesh.SetUVs(0, newVert);
Этот кусочек кода задает и делает UV координаты, однако кривовато и нужно редактировать это руками, без этого область для рисования у трехмерного объекта сдвинутая и не вся область рабочая.
Как правильно их динамически задать? И если подход не тот, в какую сторону копать?