我制作了一个ShaderGraph着色器,我将其应用于一种材质。在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);
我究竟做错了什么 ?
谢谢
基于screenshot in your other question你的颜色属性被命名为“颜色”而不是“_Color”,虽然很难看到(因为某种原因你缩放了该问题的图像)并且我不知道ShaderGraph实际输出什么样的代码(例如它可能只是一个颜色节点,它的实际内部名称就像“_Node-2389”。
如果您点击此按钮然后“编辑着色器”,它将显示有关着色器属性的一些信息,包括每个属性的真实字符串表示。
像这样: