SetFloat的Unity ShaderGraph /材料属性问题

时间:2018-12-15 21:03:50

标签: unity3d shader

我在场景中的多维数据集上附加了以下脚本:

public class TestShaderGraph : MonoBehaviour 
{
    void Start() 
    {
        Material material = GetComponent<Renderer>().sharedMaterial;
        material.SetFloat("_Min", -.5f);
        material.SetFloat("_Max",  .5f);
    }
}

这里是shader graph
这是运行场景时产生的actual result
这是手动更新检查器中材料的最小值和最大值时产生的intended result

我还在图形设置中附加了轻量级渲染管道资源。
我在这里想念的是什么?现在有人为什么不更新材料上的值吗?

我还尝试使用以下命令输出值:

material.GetFloat("_Min");
material.GetFloat("_Max");

即使没有显示在材料上,它实际上也分别导致-0.5和0.5。

PSA:在写出这个问题时,我实际上找到了解决方法。
我曾考虑过不发布此信息,但也许它将对将来也会遇到此问题的人们有所帮助。

1 个答案:

答案 0 :(得分:3)

我犯的错误实际上非常简单。 着色器图中的属性名称不是对该属性的引用。参考是令人惊讶的标有“参考”的字段。

编辑:我需要投资橡皮鸭