我制作了一个ShaderGraph Shader,并将其应用于材质。在SHader中,我在“ public”中添加了一个变量Color来更改材质颜色。在检查器中,如果不是运行时,它将起作用;
我想根据游戏中的不同元素来更改这种材料的颜色。材质已应用于lineRenderer。我尝试了很多方法,但是它永远不会改变颜色。
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);
我做错了什么?
谢谢
答案 0 :(得分:1)
基于screenshot in your other question,您的color属性被命名为“ Color”而不是“ _Color”,尽管很难看到(由于某种原因,您缩放了该问题的图像),而且我不知道哪种ShaderGraph实际输出的代码(例如,它可能只是一个颜色节点,其实际内部名称类似于“ _Node-2389”)。
如果您单击此按钮然后“编辑着色器”,它将为您显示有关着色器属性的一些信息,包括每个着色器的真实字符串表示形式。
赞:
答案 1 :(得分:0)