Проблема с покраской материалов. При смене шейдера на любой другой материал приобретает розовый цвет и не меняет его

При создании материалов у всех выбран шейдер Universal Render PipeLine/Lit. Смотрю видеокурс по Unity, автор меняет шейдеры на Standart и Mobile/Diffuse. Если так делаю я, то материал приобретает розовый цвет и не меняет его при выборе другого цвета через палитру (Standart) и даже при выборе текстур (в Mobile/Diffuse).


Ответы (1 шт):

Автор решения: Vladimir

В Unity есть 3 системы рендеринга:

  • Built-in Render Pipeline
  • Universal Render Pipeline
  • High Definition Render Pipeline.

При создании проекта в Unity Hub можно выбрать соответствубщий шаблон.


Шейдеры создаются под каждую систему свои, и, за очень редкими исключениями, они не совместимы с другими системами. Когда заданный шейдер не может быть использован, Unity отображает объект розовым цветом (ещё есть голубой цвет, когда шейдер валиден, но ещё не готов).


Соответственно, у вас создан проект, который использует Universal Render PipeLine, т.е. для него подходят шейдеры, которые лежат в Universal Render PipeLine/, а в видеокурсе, очевидно (по названиям шейдеров), используется Built-in Render Pipeline.


Решить это можно одним из следующих способов:

  1. Выбрать ассет материала в Unity и конвертировать его в URP с помощью Edit->Rendering->Materials->Convert Selected Built-in Materials to URP. Это сработает для большинства стандартных шейдеров, но если в курсе будут кастомные шейдеры, то не поможет.
  2. Создать проект, использующий Built-in Render Pipeline.
  3. (Сложно) изменить Render Pipeline в существующем проекте.
  4. (Сложно) создать шейдеры самостоятельно.
→ Ссылка