着色器通过Properties
块声明材质属性。若要在着色器程序中访问这些属性,需声明同名且类型匹配的 Cg/HLSL 变量。
(一).示例:ShaderLab 属性与 HLSL 变量映射
hlsl
// ShaderLab属性声明
Properties {
_MyColor ("颜色", Color) = (1,1,1,1) // 颜色属性
_MyVector ("向量", Vector) = (0,0,0,0) // 四维向量属性
_MyFloat ("浮点值", Float) = 0.5 // 浮点属性
_MainTex ("纹理", 2D) = "white" {} // 2D纹理属性
_CubeMap ("立方体贴图", CUBE) = "" {} // 立方体贴图属性
}
// HLSL变量声明(需与属性名和类型严格匹配)
fixed4 _MyColor; // 颜色通常使用fixed4(低精度)
float4 _MyVector; // 向量属性对应float4
float _MyFloat; // 浮点属性对应float
sampler2D _MainTex; // 2D纹理对应sampler2D采样器
samplerCUBE _CubeMap; // 立方体贴图对应samplerCUBE采样器
uniform
关键字可选,HLSL 会自动将变量视为全局属性:hlsl