Мой вопрос: есть ли способ, чтобы GameObjects совместно использовали кусочки одного и того же материала, не клона, а его расширения? Например, в этом случае девять игровых объектов, использующих один и тот же материал, увеличиваются до размеров девяти:
И в случае, если я удаляю, например, один посередине, он будет содержать тот же материал, увеличенный с пустым пространством внутри:
Для этой цели я использовал один материал на объект, но я намерен использовать его только для одной текстуры для нескольких объектов или, например, для нескольких текстур в разных частях одного и того же объекта. (Как кнопка рисования у нас в пользовательских Unity3D Terrains).
unity
3d-meshes
gameobject
JamesB
источник
источник
Ответы:
Вы рассматривали возможность использования шейдера Unity для создания собственного шейдера для материала? Вы можете достичь желаемого, используя положение в мировом пространстве для текстур / uvs. Я не очень хорош в объяснении этого и не очень хорош в шейдерах, но я сделал небольшой пример для вас, как шейдер воды, потому что мне было скучно, и я уже играл в своем проекте, посвященном экспериментам.
Это изображение показывает, что перекрывающиеся плоскости, по-видимому, используют один и тот же материал.
Это пример, сделанный в шейдерграфе
Краткий обзор шейдерных узлов из моего примера, как я их понимаю
Если кто-то считает, что что-то, что я сказал или сделал, неверно или может быть улучшено, пожалуйста, не стесняйтесь поправлять меня. Я все еще учусь, и толчок в правильном направлении всегда приветствуется. Я загрузил пример сцены в Google Drive для вас возиться. не уверен, если атрибуция требуется, но используемый водный ресурс является бесплатным и от gametextures.com
источник
Вы можете создать атлас спрайтов из одной текстуры, создать дочерний объект для вашей плоскости или любой другой фигуры, которую вы используете, перетащить в созданные вырезы спрайта, повернуть и поместить дочернего объекта в игровой объект плоскости, как вам нравится, и вуаля, посмотрите на картинку ниже, чтобы понять, что я имею в виду,
Это может быть утомительной работой, но кажется, что это решение соответствует вашим желаниям.
источник
Другой вариант - использовать объект «Проектор» в папке стандартных ресурсов Unity. Он не очень эффективен, но его действительно легко настроить. Так что для простых случаев, это может быть именно то, что вы ищете. Но, как я уже сказал, это оказывает довольно значительное влияние на производительность, особенно если вы проектируете большие текстуры.
источник