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