【发布时间】:2019-09-05 15:57:23
【问题描述】:
我有一个材质设置为透明的游戏对象,我想将其 alpha 更改为 80 而不是 255。 但我想通过代码来完成,而不是使用编辑器滑块。 有没有一种简单的方法可以仅使用一行代码来更改着色器的 alpha? 比如:
MyObject.GetComponent<Material>().shader.alpha = 80;
我浏览了互联网,发现只有更复杂的解决方案...
【问题讨论】:
-
寻找
sharedMaterial和Material Property Blocks,它们可以帮助您更改材质的属性,这些属性将反映在着色器中。 -
@Daniel 我写了 MyObject.GetComponent
().sharedMaterial.SetFloat("color.a", 0.4f);但我想我只能设置颜色或浮点属性,而 alpha 不是这些东西,对吧?你觉得我怎么改? -
Alpha 是一个介于 0 和 1 之间的浮点数。如果您在设置 alpha 时遇到问题,请务必记住设置标签 (
Tags {"Queue"="Transparent" "RenderType"="Transparent" }) 并设置正确的混合类型 (Blend SrcAlpha OneMinusSrcAlpha),否则你的 alpha 不会有什么不同。
标签: c# unity3d shader gameobject