Unity, как установить тег шейдера «DisableBatching» = «True» в графике шейдера?

#unity3d #shader #shader-graph

Вопрос:

Я создаю свой первый шейдер, используя график шейдера, и я вижу странное поведение с моими позициями вершин, когда у меня есть несколько объектов в сцене, использующих шейдер/материал, который я создал.

Похоже, что Unity группирует объекты, пока не уверен, что это значит, но, похоже, мне нужно отключить пакетирование, чтобы позиции вершин в моем шейдере оставались относительно объекта, а не объектов.

Некоторые открытые темы без решения:

Короче говоря: Как я могу добавить теги, и в частности DisableBatching тег в моем шейдере, созданный с помощью графика шейдеров?

Ответ №1:

Это не отвечает на ваш вопрос, но в итоге я сделал то, что сделал d2clon в опубликованном вами сообщении на форуме, а именно продублировал материал во время выполнения с помощью скрипта, который вы добавляете в объект.

Я публикую это в качестве ответа, чтобы люди могли попробовать что-то, что сработало (для меня), без необходимости читать все темы, которые вы опубликовали. Мне также интересно, как самому отключить флаг пакетной обработки, но этого будет достаточно.

 public class MaterialDuplicator : MonoBehaviour
{
  void Awake()
  {
    Renderer renderer = gameObject.GetComponent<Renderer>();
    renderer.material = new Material(renderer.material);
  }
}