Как в юнити 2д попиксельно изменить цвет текстуры?
Мне нужна помощью с юнити 2д 2025. У меня есть пиксель арт, который состоит из трех цветов: красный, желтый и синий. Я хочу что бы цвета в спрайтах(красный, желтый и синий), случайным образом заменились на другие, например красный на фиолетовый и т.п. При этим сами текстуры нарисованы в пиксель арте, поэтому необходимо изменить каждый пиксель текстуры. Таких текстур будет много и у каждого я хочу независимой покрас(замена цвета). При помощи Post-Processing это сделать сложно, так как нагружает систему и не может действовать на конкретные объекты по разному. Подскажи как такое можно реализовать?
Gemer907, интересно ты используешь Юнити, не зная, что такое шейдер.
Я постарался загуглить, но ничего не нашёл
ты ж не старался, не обманывай.
Фрагментный шейдерименно для цели изменения цвета фрагмента (пикселя) и создавался 30 лет назад. Это его прямое назначение.
У тебя элементарная задача ротации палитры по LUT:
Фрагментный шейдер делает lookup по палитре, и заменяет значения цвета согласно таблице. Из этого шейдера делаешь материал, прикручиваешь к спрайт рендереру. Палитру пихаешь в MaterialPropertyBlock и тоже вешаешь на рендерер.
Всю эту канитель цепляешь на каждый инстанс спрайта, которому нужно менять цвет.
Всё