一些常用 Shader 变量的Attribute设置
1.1 枚举, 使用系统自带的枚举
[Enum(UnityEngine.Rendering.BlendMode)] _Blend ("Blend mode", Float) = 1
1.2 枚举, Shader中设置的枚举并指定枚举值
[Enum(One,1,SrcAlpha,5)] _Blend2 ("Blend mode subset", Float) = 1
1.3 枚举, 控制宏关键字, 自动添加变量
[KeywordEnum(None, Add, Multiply)] _Overlay ("Overlay mode", Float) = 0
会自动生成变量_OVERLAY_NONE _OVERLAY_ADD _OVERLAY_MULTIPLY
#pragma multi_compile _OVERLAY_NONE _OVERLAY_ADD _OVERLAY_MULTIPLY
这个关键字需要在CGPROGRAM ... ENDCG 中定义
2.1. 普通开关
[Toggle] _Invert("Invert color?", Float) = 0
2.2 关键字开关
[Toggle(ENABLE_FANCY)] _Fancy ("Fancy?", Float) = 0
需要手动添加 #pragma multi_compile _ ENABLE_FANCY
或 #pragma shader_feature ENABLE_FANCY
3.1 数值变量拖动条
_Blend("Blend", Range(0,1)) = 0.5 // 普通拖动条
[PowerSlider(3.0)] _Shininess ("Shininess", Range (0.01, 1)) = 0.08 // 二次方拖动条
4.1 一般扩展
// Default small amount of space.[Space] _Prop1 ("Prop1", Float) = 0
// Large amount of space.[Space(50)] _Prop2 ("Prop2", Float) = 0
[Header(A group of things)] _Prop1 ("Prop1", Float) = 0 // 提示信息
联系客服