NGUI 灰化按钮或图标
在游戏中某些地方可能需要对按钮进行灰化显示,从而表示不能点击!在网上找了一下有些方法是直接用UITexture+灰化shader去做这件事!另外有些方案写的不太清楚,看不懂!不过也基本都是要使用灰化shader,不可能说每有一个需要灰化地方的图片就让美术出多一张对应的灰化资源图,这样太浪费空间了。
我的解决方法是这样的:copy已有的atlas材质及预设体!然后将材质的shader指定为灰化的shader,atlas预设体中的材质指定灰化材质!具体步骤如下:
0.需要一个灰化效果的shader,具体直接网上搜索找一下相关的shader代码就可以了!
1.使用atlas maker制作生成了图集common_atlas(包括生成了贴图图集common_atlas.png、预设体common_atlas.prefab、材质common_atlas.mat这三个文件)
2.复制了图集预设体、图集材质,姑且命名为gray_common_atlas.prefab, gray_common_atlas.mat,然后将材质文件gray_common_atlas.mat默认的shader指定为前面选好的灰化shader,这样使用这个灰化prefab的sprite就都是灰化效果。
3.在运行中,一旦某个按钮或者图标sprite(它们的atlas是指定为正常的common_atlas.prefab)需要灰化,这个时候就动态的将Sprite.atlas设置为gray_common_atlas.prefab,需要设置正常状态的时候,就反过来设置为正常的common_atlas.prefab。
4.当然了,由于sprite的atlas属性你不好去new一个,所以我是在布局阶段,每有一个图集就新建1个sprite,然后选择对应的图集atlas,然后将这个sprite放在一个单体类AllAtlas中,一旦某个按钮或图标的sprite需要动态设置指定的atlas属性,就将AllAtlas中对应的sprite.atlas赋值给它。
比如AwardSprite.atlas = AllAtlas.Instance.CommonSprite.atlas,这样就设置了想要的atlas!
因为1个atlas就是1个drawcall,而用到灰化图标的地方同屏显示的其他图片肯定是其他atlas,这样使用1个这样的灰化atlas会增加1个drawcall!
NGUI 灰化按钮或图标的更多相关文章
- 【原创】小白学jquery Mobile《构建跨平台APP:jQuery Mobile移动应用实战》连载五(给按钮加图标)
在范例5-4所使用的导航栏中,已经为按钮加入了图标的样式,但是当时并没有介绍按钮的图标究竟是怎么一回事.下面截取范例5-4中导航栏部分的代码: <divdata-role="foote ...
- 按钮的图标 Button icons-JQUERY MOBILE 1.0正式版中文手册
按钮的图标 Button icons-JQUERY MOBILE 1.0正式版中文手册 data-icon属性可以被用来创建如下所示的图标 左箭头data-icon="arrow-l&quo ...
- Unity NGUI实现按钮点击播放Aniamtion
unity版本:4.5 NGUI版本:3.6.5 参考链接:http://www.colabug.com/thread-1029974-1-1.html,作者:COLABUG.COM 橘虞 1.怎么创 ...
- Flex 按钮添加图标
第一种是在Flex应用中创建一个变量,利用[Bindable]和[Embed] ,在代码中以参数形式传入制定图标(icon)的路径,然后利用类似icon="{Icon}"的代码嵌入 ...
- UEditor工具栏上自定义按钮、图标、事件和右击菜单添加自定义按钮
首先我要说是,举例说的这个版本是1.2以上的,因为一些配置代码转移到了zh-cn.js里,其他没有变化.开门见山直接写:(我自定义的是在线美图功能) 第一步:找到ueditor.config.js文件 ...
- [原]NGUI之按钮置灰
传统按钮置灰,需要使用另外一张纹理. 本例通过修改shader和NGUI sprite的r值实现按钮置灰.优势:节省纹理,操作简单 将NGUI Unlit/Transparent Colored片段部 ...
- bootstrap带图标的按钮与图标做连接
bootstrap通过引入bootstrap的JS与css文件,给元素添加class属性即可. 使用图标只需要加入一个span,class属性设置为对应的图标属性即可.图标对应的class属性可以参考 ...
- toolbar按钮添加图标
需要toolbar关联imagelist组件,imagelist组件添加需要的图片,在toolbar新建按钮,按钮中选择相应图表.
- VS2010 MFC对话框程序用CButtonST给按钮添加图标
也许是VS版本的关系,CButtonST中的BCMenu两个文件是无法编译通过的. 1.拷贝下载的CButtonST(我下载的v3.9)中的BtnST.h和BtnST.cpp文件到自己项目目录下. ...
随机推荐
- dsquery、netdom工具示例
C:\>netdom query fsmo架构主机 DC1.lypower.com.cn域命名主机 DC1.lypower.com.cnPDC ...
- 《疯狂Java讲义》(一) ---- 关于学习Java的反思
"听到Spring很火,就立马买来一本Spring的书来读,最后结果往往是失败,因为这种学习没有积累,没有根基,学习过程中困难重重,每天都被一些相同.类似的问题所困扰,起初热情十足,经常上论 ...
- php命名空间和autoload
参考: 1.http://www.cnblogs.com/thinksasa/p/3423480.html PHP的命名空间 2.http://blog.jjonline.cn/phptech/15 ...
- Entity Framework学习笔记——记一个错误解决方式及思路
继续之前设定的学习目标前,先来一篇小小的外篇.按照第一篇里的配置方式配置好的工程前两天还能正常工作,昨天却突然无法通过Add-Migration命令进行数据库的升级.错误信息如下: System.Da ...
- 1、win32创建窗口函数(windows程序内部运行机制)
利用win32创建窗口函数,主要操作步骤为: 1.设计一个窗口类 2.注册窗口类 3.创建窗口 4.显示及窗口更新 5.消息循环 6.窗口过程函数 (1)设计一个窗口类 设计窗口类,这样的类型已经 ...
- 用:before :after 来写一些小特效
提起:before :after首先想到的是 —— 用它来去浮动来我们来换个方式玩接下来展示三种用:before :after来实现的特效 希望能起到抛砖引玉的作用 <一>第一种就是常见的 ...
- OAuth认证
OAuth简介 OAuth是在不提供用户名和密码的情况之下,授权第三方应用访问Web资源的安全协议. OAuth允许用户提供一个令牌给第三方网站,一个令牌对应一个特定的第三方网站,同时该令牌只能在特定 ...
- What is SPI?
原文地址:http://www.fpga4fun.com/SPI1.html SPI is a simple interface that allows one chip to communicate ...
- win10环境下ue4使用游戏手柄输入
忙里偷闲,趁着源码编译需要好久的时间,把这篇博客补上,来说说怎么在win10环境中,ue4使用游戏手柄输入,也就是gamepad输入. 1.我用的手柄是rapoo v10 这款手柄,连接无线USB之后 ...
- pom.xml详解
setting.xml主要用于配置maven的运行环境等一系列通用的属性,是全局级别的配置文件:而pom.xml主要描述了项目的maven坐标,依赖关系,开发者需要遵循的规则,缺陷管理系统,组织和li ...