US5L6——PowerSliderDrawer和IntRangeDrawer
US5L6——PowerSliderDrawer和IntRangeDrawer
本章代码关键字
1 | [PowerSlider] // 让属性在Inspector窗口中显示为一个指数滑块,相比普通的线性滑块,它可以更方便的调整那些变化范围较大、非线性分布的参数 |
PowerSliderDrawer的使用
作用:PowerSliderDrawer
是 Unity 自带的继承自 MaterialPropertyDrawer
(材质属性绘制器) 的类
使用它修饰属性,可以让该属性在 Inspector 窗口中显示为一个指数滑块,
相比普通的线性滑块,它可以更方便的调整那些变化范围较大、非线性分布的参数,
比如:当属性的值范围较大,但其效果对某些特定范围特别敏感时,可以通过 PowerSlider
进行更直观的调整
它和普通滑块属性的区别是:
- 普通滑块属性默认是线性分布,即滑块的位置与参数值成正比
-
PowerSlider
提供了 非线性映射,适合用在参数值对效果影响不均匀的场景
我们可以用该类修饰
- 光照强度: 调整光的强弱(低强度变化显著,高强度变化较平滑)。
- 对比度: 调整图像的对比效果。
- 模糊程度: 调整模糊范围,尤其是高斯模糊。
等等
使用方式:
1 | [PowerSlider(指数)] 属性名("显示名称", Range(最小值,最大值)) = 默认值 |
对应的函数曲线为:,其中:
- 为滑块所在位置
- 为属性的数值
- 为
[PowerSlider()]
内填入的指数
使用示例
1 | Properties |
显示效果(这里的指数曲线相当于 ):
可以看到,明显 0~0.5 占滑块的滑动范围更大
IntRangeDrawer的使用
作用:IntRangeDrawer
同样是 Unity 自带的继承自 MaterialPropertyDrawer
(材质属性绘制器)的类
使用它修饰属性,可以让该属性在 Inspector 窗口中显示为一个整数范围滑块,使得滑块只能按整数调整值
使用方式:
1 | [IntRange] 属性名 ("显示名称", Range(最小值, 最大值)) = 默认值 |
使用示例:
1 | Properties |
显示效果:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 文KRIFE齐的博客!