Обновление (решено): Ужасная производительность была из-за того, что я не осознавал, что Me sh .vertices.Length делает копию массива при каждом вызове.
Мне нужно процедурно генерировать мне sh четырехугольников. В идеале я хотел бы иметь возможность менять цвет отдельных квадрациклов. Тем не менее, все в порядке, если цветовая дисперсия возникает только на оси x (см. Фото ниже).
Тем не менее, настройка Me sh .Colors равна очень медленно . Например, установка цветов для 100 000 вершин занимает ~ 10000 миллисекунд. Как я могу сделать это более эффективно? Я делаю что-то неправильно?
void CreateMesh()
{
Mesh.Clear();
Mesh.vertices = Vertices.ToArray();
Mesh.triangles = Triangles.ToArray();
// Set Colors to Mesh
Color32[] colors = new Color32[] { new Color32(0, 255, 0, 255), new Color32(255, 0, 255, 255), new Color32(0, 0, 255, 255) };
Color32[] colorsArray = new Color32[Mesh.vertices.Length];
System.Random rnd = new System.Random();
for (int i = 0; i < Mesh.vertices.Length; i++)
colorsArray[i] = colors[rnd.Next(0, 2)];
Mesh.colors32 = colorsArray;
}