为了账号安全,请及时绑定邮箱和手机立即绑定

ShaderGraph 材质颜色变化

ShaderGraph 材质颜色变化

C#
繁星coding 2022-01-09 15:54:09
我制作了一个 ShaderGraph 着色器,并将其应用于材质。在着色器中,我在“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);我究竟做错了什么 ?
查看完整描述

2 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

当您使用自定义着色器时,属性可能有不同的名称

根据您的另一个问题中屏幕截图,您的颜色属性被命名为“Color”而不是“_Color”,尽管很难看到(因为出于某种原因,您为该问题缩放了图像)而且我不知道 ShaderGraph 的代码类型实际输出(例如,它可能只是一个颜色节点,其实际内部名称类似于“_Node-2389”)。

如果您点击此按钮,然后“编辑着色器”,它将向您显示有关着色器属性的一些信息,包括每个属性的真实字符串表示。

//img1.sycdn.imooc.com//61da94fb0001432a03580064.jpg

像这样:

//img1.sycdn.imooc.com//61da95070001087303310088.jpg


查看完整回答
反对 回复 2022-01-09
?
月关宝盒

TA贡献1772条经验 获得超5个赞

好吧,我发现,

计数的不是属性的名称,而是引用。要查看它,请进入 ShaderGraph,然后单击属性,您会在属性参数上找到引用名称(左上角):

//img1.sycdn.imooc.com//61da951d0001d88d13000909.jpg

像这样使用参考槽代码更改参数值

    material.SetColor("_Color", new Color());



查看完整回答
反对 回复 2022-01-09
  • 2 回答
  • 0 关注
  • 691 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信