У меня есть изображение (прилагается), которое я использую в качестве теста. Я пытаюсь получить и сохранить все цвета каждого пикселя в массиве.
Я использую приведенный ниже код для этого;
Texture2D tex = mapImage.mainTexture as Texture2D;
int w = tex.width;
int h = tex.height;
Vector4[,] vals = new Vector4[w, h];
Color[] cols = tex.GetPixels();
for (int y = 0; y < h; y++)
{
for (int x = 0; x < w; x++)
{
if(cols[y+x] != Color.black)
{
Debug.Break();
}
vals[x, y] = cols[(y + x)];
}
}
Где mapImage - публичная переменная Material, которую я перетаскиваю в сцену в префабе. Как видите, я добавил тест отладки, чтобы приостановить работу редактора, если достигнут не черный цвет. Этого НИКОГДА не бьют никогда.
Интересно, что у меня есть другой скрипт, который запускает и сообщает мне значения цвета (GetPixel ()) в позиции щелчка, используя то же изображение. Работает нормально (разные методы, но оба в конечном итоге используют один и тот же материал)
Я в недоумении, почему GetPixels () всегда получается черным?
Я также думал о том, чтобы просто загрузить данные изображения в байтовый массив, затем проанализировать значения в Vector4, но надеялся, что в конечном итоге это сработает.