Приложенная картинка подводит итог. Справа это то, что я хочу. Слева есть то, что я получаю. Цвета неправильные. (изображение левого лица - из захваченного скриншота из игры, запущенной в Unity. Изображение для правого лица - это вставка правильного изображения поверх скриншота для сравнения)
Код, который я вызываю с OnGUI()
для наложения изображения лица:
GUI.DrawTextureWithTexCoords(toRect, texture, fromRect);
Текстура, о которой идет речь, взята из PNG 1024x1024, сохраненного из Photoshop. Этот PNG имеет правильные цвета, когда я его открываю, но не когда DrawTextureWithTexCoords
отображает его на экране. Я экспериментировал с различными настройками экспорта в Photoshop и настройками импорта текстур, но безрезультатно. Было бы неплохо, если бы я что-то там пропустил, но у меня, кажется, закончились ручки для поворота.
В целях устранения неполадок я перетащил текстуру в сцену, применив ее в качестве материала к поверхности поверхности. сетка. Текстура отображается с правильными, оригинальными цветами на сетке. (Обратите внимание - это не то, что я пытаюсь сделать. Мне нужно, чтобы текстура отображалась в GUI, а не в сцене.)
Нет кода, который мне известен, который обрабатывает текстуру илиделать что-то, что повлияет на рендеринг. Я попытался отключить свою постобработку в качестве теста, но это не влияет на графический интерфейс.
Это Unity 2019.1.13f1, запущенный на IMac 2015 года. Я также включил снимок Инспектора в настройках импорта текстур ниже. И почти оригинальная текстура PNG (добавлен водяной знак).
Как заставить фейс-арт отображать правильные цвета?