@Just_Graf

Как сделать так, чтобы «tiling» и «offset» применялись только к одному мешу в Unity?

Выделил на скрине эти "tiling" и "offset". Если их изменить, то текстура будет для всех мешей с такими установленными цифрами, а мне нужно, чтобы для каждого объекта текстура была с первоначальными размерами... Вот. Надеюсь, смог объяснить 5b98e32ec7a63248368677.jpeg
  • Вопрос задан
  • 611 просмотров
Решения вопроса 2
freeExec
@freeExec
Участник OpenStreetMap
то текстура будет для всех мешей с такими установленными цифрами

Будет на всех объектах с данным материалом. Если вам нужно чтобы было индивидуально - клонируйте материал для каждого, но это дополнительный DrawCall, поэтому если у вас их тысячи - вы проиграете.
Ответ написан
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Вариант первый - сдублировать материал в редакторе или рантайме и поменять значение, но это ударит по производительности.
Вариант второй - использовать MaterialPropertyBlock и Renderer.SetPropertyBlock, это самый производительный вариант, но надо писать скрипт и иметь ссылку на нужный рендерер.
Нужное вам свойство называется _MainTex_ST, это Vector4, менять его можно с помощью Material.SetVector либо MaterialPropertyBlock.SetVector.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы