ShaderGraph Материал Изменение цвета - PullRequest
0 голосов
/ 09 сентября 2018

Я сделал ShaderGraph Shader, который я применил к материалу. В SHader я поместил в "public" переменную Color, чтобы изменить цвет материала. От инспектора, это действительно работает, если это не время выполнения;

Я бы хотел изменить этот цвет материала в зависимости от различных элементов во время игры. Материал применяется к lineRenderer. Я пробовал много способов, но это никогда не меняет цвет; enter image description here

GetComponent<EnemyType>().color; return a RGBA color. I tried :

     LaserLine.material.color = GetComponent<EnemyType>().color;
     LaserLine.startColor = GetComponent<EnemyType>().color;
     LaserLine.endColor = GetComponent<EnemyType>().color;
     LaserLine.material.SetColor("_Color", GetComponent<EnemyType>().color);

Что я делаю не так?

Спасибо

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Хорошо, я узнал,

Это не имя свойства, которое учитывается, а ссылка. Чтобы увидеть его, зайдите в ShaderGraph и нажмите на свойство, вы найдете справочное имя в параметрах свойства (вверху слева):

enter image description here

Измените значение параметра, используя эталонный код впадины, как этот

    material.SetColor("_Color", new Color());
0 голосов
/ 09 сентября 2018

Поскольку вы используете собственный шейдер, свойства могут иметь разные имена

На основе скриншота в вашем другом вопросе ваше свойство цвета называется "Цвет", а не "_Цвет", хотя его трудно увидеть (потому что по какой-то причине вы масштабировали изображения для этого вопроса), и я не знаю, какой код на самом деле выводит ShaderGraph (например, это может быть просто цветной узел, а его фактическое внутреннее имя - что-то вроде "_Node-2389").

Если вы нажмете эту кнопку и затем «отредактируете шейдер», она покажет вам некоторую информацию о свойствах шейдера, включая истинное строковое представление каждого из них.

Shader settings

Как это:

Shader properties

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...