首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

Unity3D开发(2):NGUI之UIButton"禁用"状态时置灰

2013-10-08 
Unity3D开发(二):NGUI之UIButton禁用状态时置灰NGUI中的Button几乎是最常用到的控件之一,并且可以组合各

Unity3D开发(二):NGUI之UIButton"禁用"状态时置灰

NGUI中的Button几乎是最常用到的控件之一,并且可以组合各种组件(比如UIButtonColor,UIButtonOffset,UITweenxx),方便设置Button的各种状态下的属性,几乎可以满足我们的所有需求。

但是对于当Button的isEnabled属性设置为false时,根据设置的disableColor属性设置不可点击时的颜色时,虽然我们设置的灰色,但并不是我们想象中的样子!

Unity3D开发(2):NGUI之UIButton"禁用"状态时置灰

设置的是灰色,实际运行结果却还是彩色的,只是暗了一点,并不能够很好地表现出其“禁用”的状态!


1.原理

Unity3d中所有的渲染都是基于Shader的,而Shader绑定在Material上,打开一个NGUI例子中自带的Material,得到其使用Shader的文件

NGUI中大部分材质都使用的Unlit/Transparent Colored(PS:虽然在Unlit下,但并不是Unity3d内置的,而是NGUI扩展的)

找到其片段着色器,代码如下:


(最上面两个是原始状态下的效果,中间两个是NGUI提供的禁用状态效果,最下面两个分别是修改后Shader渲染同一个Atlas得到的结果)

这才是我想要的灰色!

(PS:感谢GYB提供的思路!)

热点排行