目录
6.方法介绍
Properties:
语法格式: [Attribute_Name] (“Display name ”Type) = default Vaule]
Attribute
关键字:对当前的属性进行特殊处理
_Name 变量名称 也叫属性名称 在Shader 的CG代码中通过这个名称来调用从属性内容的,在内部利用脚本调用时也是这个名称,所以一定要用英文而且一定要加下划线,不然报错。
Display Name:
显示在属性面板上的名称,主要起到说明解释的之作用。(要和属性的意义有关)
Default Value
默认值,当第一次指代那个此Shader,属性的值会自动恢复到默认值,不同的类型具体写法不一样。
Type
属性的类型:
Color 颜色
Int 整数
Float 浮点数
Vector 四维数
2D 纹理
3D 纹理
Cube 立方体纹理
例子:
Color
变量名:_Color
显示名称:我是Color
类型:Color
默认值:(1,1,1,1)
HDR可以是使得颜色亮度超过1,通过这个值可以配合镜头Bloom效果做出物体泛光的视觉效果
Properties
{
[HDR]_Color("我是Color", Color) = (1,1,1,1)
}
//四位向量RGBA(红绿蓝,透明)
Int
(类型:整形)
虽然我们可以取任意值在面板,但是在shader中只会被识别为整数,例如1.99结果是1
Properties
{
_Int("Int", Int) = 1
}
Float
(类型:浮点数)
在Shader中Float是最基本的类型,而Int只是一种伪整型,从Shader精度上来讲并不存在整型。所以在Properties内完全可以用Float替代Int。
Properties
{
_Float("Float", Float) = 0.5
}
[Range]
将此属性中原有的Float替换成Range (Min,Max)即可,Min=最小值,Max=最大值。
Properties
{
_Float("Float", Range( 0 , 1)) = 0.5
}
[PowerSlider(Value)]
此属性标记的主要作用,是方便用户调节滑杆。比如有个属性值是从0-1,但是很大部分情况下所用到的值都是0-0.1左右,同时需要更精细的在这区间进行微调。那么正常情况下,用户在整个滑条上想选择0-0.1之间本身就变的很难了,更不要说在这区间微调了。所以这个时候就可以利用PowerSlider来解决此问题。
Properties
{
[PowerSlider(3)]_Float("我是Float", Range( 0 , 1)) = 0.5
}
[Toggle]
Properties
{
[Toggle]_Float("True", Range( 0 , 1)) = 1
}
[Enum]
Properties
{
[Enum(UnityEngine.Rendering.CullMode)]_Float("Enum", Float) = 1
}
Vector
(类型:四维向量)
Properties
{
_Vector("Vector", Vector) = (0,0,0,0)
}
2D
(类型:2D纹理)
Properties
{
_MainTex("我是2D纹理", 2D) = "white" {}
}
默认值
2D纹理的默认只有以下几种:
white
black
gray
Bump
Bump法线图
如果不设置默认值,即=""{},则其实与="gray"{}相同。
通用属性
[Header]
[HideInInspector]
在材质面板中隐藏此条属性,在不希望暴露某条属性时可以快速将其隐藏。
Properties
{
[Header(Header )]_Int("我是Int", Int) = 1
}
补充:
1.在Properties编辑过程中一定不可以在你编辑的代码属性后面加分号(;)
2.可多条关键字同时写
[HideInInspector][Header(Header )]_Int("我是Int", Int) = 1