博客数据丢失,刚恢复一年前的备份!--QQ群:162541429

Unity NGUI图片去色黑白效果

Shader 小宝 10445℃ 6评论

在做项目的时候。我们经常要用到禁用为灰色的效果。比如 我们要做 图鉴 我们已有的装备物品为彩色。没有的为灰色。

在我们设置UISprite或者UITesture的颜色时。会发现,效果不好还会被图片本身的颜色影响。如下

UISprite去色黑白效果

而我们需要的是这样的效果

Unity去色黑白效果

这时。就需要我们写Shader来弄了。

Unity中搜索 :Transparent Colored

打开该shader 搜索 函数

将之替换为如下代码

另存为。换个名字。然后给UITexture引用就可以了。如下;

4

当然也可以用脚本动态更改。(传入false则去色)

UISprite的话。需要给图集的材质球更好Shader;

动态的话。如下

我们可以就一个图集。写一个方法。运行后。将已有的图集动态克隆一份。然后引用新的shader。然后根据条件去取相应的图集。就可了。

 

修改添加代码。如下:

 

 

最后。去色Shader下载地址:

http://yunpan.cn/csS8MqZbI2kPt  提取码 b8cd

转载请注明:小宝个人笔记 » Unity NGUI图片去色黑白效果

喜欢 (5)or分享 (0)
本站所有内容如未标明转载的内容,均为原创内容。转载请注明来源!
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(6)个小伙伴在吐槽
  1. 用你说的方法去色之后,在Scroll View中使用会有问题,不知道你有没有遇见过
    • 应该是使用方法的问题 scrollview中是不会有问题的
      小宝2015-09-08 00:56 回复
      • 确实是有问题的,和Mask冲突 ScrollRect 和Mask同时实用,里面的图片要变灰的话,shader会和Mask冲突
        • 这个问题我也遇到了,不知道大神们有没有解决方案?
          DLove05022015-09-30 16:51 回复
          • 过了半年了,有解吗?
            幻菜鱼2016-03-15 20:54
  2. 这个GetGrayIconSprite在调用啊?参数是什么?
    蒲公英的约定2016-02-24 17:26 回复