欢迎光临散文网 会员登陆 & 注册

URP | Shader预定义UI

2022-05-29 13:00 作者:那个人真狗  | 我要投稿


目的

  • 学习ShaderUI基础语法。

  • 对不同种类的整理

基础语法

Enum类(枚举)

  • 枚举,最多可指定 7 个名称。常用的枚举类如下。

    当然也可以自定义枚举,可以通过KeyWrod来控制。

  • 混合模式

注意:用法

    效果    

  • 深度开关

    ZWriteMode是没有内置的,实际上也只有onoff两个状态,所以用Toogle其实也可以,我这里是直接用[Enum(Off, 0, On, 1)]这样的写法声明了个新的自定义Enum

  • 剔除模式

是系统默认的是否开启 双面设置

                Off   开启双面

                Front  背面

                Back  正面

  • 深度测试

这个定义是系统默认的

  • 颜色通道写入遮罩

这里第一个输出颜色通道

效果

这样就可以使用到,一张贴图不同通道的输出。

代码用法



IntRange

  • 显示一个适用于 Range 着色器属性的整数滑动条。

  • 效果

Header

  • 显示一个头部名称。

  • [Header()]

注意:

  • 不支持汉字,数字以及大部分符号

  • 在着色器属性之前创建一个标题文本。

效果

Space

  • 在两个变量之间增加空白

两种使用方法,一种是单独一行,也可以增加到属性变量前。

效果

KeywordEnum

  • 关键字枚举,并启用相应的着色器关键字。它可在着色器中与“#pragma multi_compile”配合使用,以启用或禁用部分着色器代码。**每个名称都将 采用“属性名”+ 下划线 +“枚举名”**这种形式的大写着色器关键字。最多可提供 9 个名称。

注意:大写

Toggle类(开关)

  • 以开关形式显示浮点值。属性值为 0 或 1,具体取决于开关状态。当开关处于打开状态时,将设置一个带有大写属性名称 +“_ON” 的着色器关键字,或者一个显式指定的着色器关键字。

效果

PowerSlider

  • 显示一个具有对应于 Range 着色器属性的非线性响应的滑动条。意思就是,让Range滑杆更加方便调整细微的值。以[PowerSlider(1.0)]为分界,当值为1.0时,效果与range一致。当值<1.0时,值越大可调整的范围越大。当值>1.0时,值越小可调整的范围越大。可以更精细地在这些区间进行微调。

  • 当值为0.1时

  • 我们可以看到他们俩的位置是不一样的,上面的会更精细的调整。

  • 当值为10时

  • 当值为0.1的时


  • 总结:PowerSlider值类似曲线的控制值,值越大,小值的范围越好调整,值越小,大值的可调整范围越大。

总结

效果

  • 面板属性

全代码

  • 全代码


URP | Shader预定义UI的评论 (共 条)

分享到微博请遵守国家法律