包含此页的版本:
不含此页的版本:
在您的ShaderLabUnity 用于定义 Shader 对象结构的语言。更多信息
请参阅术语表代码中,您可以定义材质属性。材质属性是 Unity 存储为材质资产一部分的属性。这允许艺术家创建、编辑和共享具有不同配置的材质。
如果使用材料属性:
如果不使用材料属性:
通常不会创建材质属性的唯一情况是,如果要完全使用脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息
请参阅术语表(例如,如果您正在制作程序内容),如果无法将属性转换为材质属性,或者您不希望在检查器中编辑它们。
着色器属性值可从以下位置找到并提供给着色器:
优先级顺序如上:每个实例数据覆盖所有内容;然后使用材质数据;最后,如果这两个位置不存在着色器属性,则使用全局属性值。最后,如果在任何地方都没有定义着色器属性值,则将提供“默认”(浮点数为零,颜色为黑色,纹理为空白色纹理)值。
材质可以包含序列化属性值和运行时设置属性值。
序列化数据是在着色器的 Properties 块中定义的所有属性。通常,这些值需要存储在材质中,并且可由用户在材质检查器中进行调整。
材质还可以具有着色器使用的一些属性,但未在着色器的 Properties 块中声明。通常,这适用于在运行时从脚本代码设置的属性,例如通过 Material.SetColor。请注意,矩阵和数组只能作为非序列化的运行时属性存在(因为无法在 Properties 块中定义它们)。