我想创建一个简单的用户界面,用滑块更改着色器中的属性。
我在着色器中声明了一些属性,如下所示:
name ("display name", Range (min, max)) = number
但属性具有不同的范围,并且滑块是根据属性的数量动态创建的。
我想知道是否有办法访问所述着色器属性的范围,以便我可以为我的滑块设置最大值和最小值。
答案 0 :(得分:2)
否即可。这是不可能的。您无法从C#访问Range (min, max)
中的范围最小值和最大值。您有两种选择:
1 。在常量变量中对来自C#的最小值,最大值进行硬编码。确保它们与Range (min, max)
函数中的值匹配。
2 。对着色器本身的最小值,最大值进行硬编码,然后使用HideInInspector将其隐藏在Inspector中,因为您只需要阅读它们。
[HideInInspector]
min("Min", Float) = 0
和
[HideInInspector]
max("Max", Float) = 1
现在,您可以使用Material.GetFloat
函数将其从C#读取为float
。确保它们与Range (min, max)
函数中的值匹配。