位置: 编程技术 - 正文

[Shader]对NGUI的UISprite和UITexture进行裁剪(shaders initialized)

编辑:rootadmin
由于最近比较忙,所以很多我在其它地方发布的博文都没有同步到这里。我会在后面慢慢重新补回来。对各位关注我博客的读者也表示抱歉!版权所有,转载须注明出处!喜欢火影、喜欢Java、喜欢unity3D、喜欢游戏开发的都可以加入木叶村Q群:、随便聊本人真正学习Shader的时间莫过于今年春节在家的两天时间,虽然短短两天。但是已经深深喜欢上Shader。深受其魅力吸引。但是平常主要做的还是服务端和客户端的开发,偏逻辑向。所以好久也没碰Shader了。但是昨天在一个群里有人讨论NGUI不能对Sprite进行裁剪。比如把一个方形的,显示成一个圆形的。如下图:

推荐整理分享[Shader]对NGUI的UISprite和UITexture进行裁剪(shaders initialized),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:shader language,shader unroll,shader unity,shader 语言,shader 语言,shader cull,shader language,shader unroll,内容如对您有帮助,希望把文章链接给更多的朋友!

这个应该是挺常见的,或许你会说,美术直接帮你裁成圆的不就可以吗。有时候可以,有时候不行。什么时候不行呢?当你在游戏中有些地方使用方形的,有些地方使用圆形的。这时候就不能让美术帮你裁了。不然不就有两份资源了。

本文读者最好已经知道怎么使用NGUI创建图集,使用它的UISprite和UITexture。

本文编写测试环境为:系统:Win7 X引擎:Unity3D V4.3.3

插件:NGUI 3.5.7

1、开始动手

作为一个学习过两天Shader的人,我觉得,这应该难不倒我。因此,我立马在U3D的Project面板中噼里啪啦一阵狂搞。创建一个Shader。

2、编写第一版Shader。双击我们上面创建的Shader。因为这个是给NGUI用的。然后我就依照NGUI的Shader命名,给我们的Shader命名为:Unlit/Transparent Colored MaskShader代码如下:主要实现裁剪的代码为:相信大家很容易就看懂了,这里是把Mask贴图的Alpha通道的值和原图片的进行相乘。怎么用呢。

新建一个UItexture。

然后选择一个材质。用上我们上面的Shader。然后设置一个Mask。[Shader]对NGUI的UISprite和UITexture进行裁剪(shaders initialized)

这个Mask图片为

可以看到Alpha通道里面是一个白色的圆圈。记得这个Mask图片的导入设置如下:那么可以看看运行效果:3、欢呼,庆祝?貌似一切都挺顺利的。但是这个Shader能否对UISprite起效果呢?我们来试试。随便搞个图集。然后加个UISprite,

然后修改这个图集的材质使用我们的Shader。

额。。。效果咋成下面这样啦。。。不太对的赶脚

4、停一停想一想难道这是NGUI的bug。。。啊!!!啊!!!!!不行,我要想想看。。。。。。。。。1分钟过去了。为什么col.a = col.a * tex2D(_Mask, i.texcoord).a这个公式对Sprite的效果是错误的呢。难道i.texcoord的范围不是0~1.这么一想,倒好像也有点道理。因为NGUI把要用到的图片做成了图集。因此,每次只是取图集中的一小个区域显示到UI的Mesh上。那么,我只要把i.texcoord的范围重新映射到0~1。然后用于取Mask上面的颜色,不就OK了吗?机智的我立马动起手来。好了。那么怎么使用这个Shader。我们需要多一个脚本来设置这个shader的参数。

只要把这个脚本附在UISprite上即可。可以发现现在正常了。NGUI图集的材质变成了好了。这次真的可以好好庆祝下啦~~

整个效果其实只用上面的Shader和那个ScaleTexcoord.cs即可。

下载测试工程:

Unity3D异步加载方法 异步加载的方法很多,这里我介绍一下我前段时间学到的一个异步加载方法,感觉挺好用,有兴趣的可以看看,下面就直接贴代码:///summary///Asynctoload./

unity角色选择功能 一般游戏的开始都会有人物选择界面和人物选择功能;现在就先看一下这个界面。。。。这里有俩个角色从属性面板就可以看到了,当然这是完成品了

SDK 学院:第四节、Unity CurrentActivity是什么? SDK学院交流群:

标签: shaders initialized

本文链接地址:https://www.jiuchutong.com/biancheng/382536.html 转载请保留说明!

上一篇:C#闭包与unity(c# for unity)

下一篇:Unity3D异步加载方法(unity异步加载场景)

  • 小规模30万免增值税1点怎么申报税款
  • 增值税专用发票有效期是多长时间
  • 子公司自购买日开始持续计算的净资产包括商誉吗
  • 结转本年利润要扣除企业所得税吗
  • 民办非企业不注销的法律后果
  • 印花税多报了几块钱税务局会找我吗
  • 个体工商户免征税额度是多少
  • 机票行程单能报销几次
  • 个人独资企业转个体户怎么办理
  • 资产减值损失跟信用减值损失能合并
  • 申请开红字发票,原蓝字发票要退回来吗
  • 中小企业增值税税率
  • 外商投资企业购买一辆小轿车自用
  • 驻外人员医保报销
  • 收据注明实际到账时间
  • 什么时候应做资产减值准备?
  • 增值税普通发票可以抵扣进项税吗
  • 2018工资个税税率表
  • 电话费开专票可抵扣吗
  • 有线电视基本收视维护费免征增值税
  • 一般纳税人财务报表申报流程
  • 农民专业合作社属于什么企业类型
  • 房地产企业预付账款为负数
  • 统一社会信用代码查询官网
  • 递延所得税资产借贷方向
  • 账面价值,账面净值,账面余额
  • 新西兰萨摩亚人
  • 扩展组件可以删除吗
  • 卡洛里山脉
  • php yield 异步
  • 超级本轻薄本
  • 委托加工物资实际成本构成一般包括
  • 委托加工物资验收入库的金额
  • 原生微信小程序面试题
  • java中怎么连接数据库
  • javascript手机版
  • 公司给员工发放福利会计分录
  • 数据挖掘 实战
  • 终止cat命令
  • 存续分立会计处理原则
  • jsp标签大全
  • 有哪些员工福利
  • 关于机动车的法律定义
  • 投资他人公司
  • 国地税合并后工资仍然不一致
  • 土地使用权是指企业所拥有的
  • 哪些福利不需要交个税
  • 合同权益转让 范本
  • 小额零星业务税收政策
  • 企业信用公示的时候医疗和生育怎么分开计算
  • 对公外汇汇款业务
  • 应付账款主要是什么
  • 公司借款给个人的税务问题
  • 开具红字发票如何做账?
  • 应付账款的发生额怎么算
  • 退回的保证金多了一点怎么做分录
  • 应交增值税进项税额月底怎么处理
  • 出售无形资产净损失
  • 三证合一是哪三证
  • 处置固定资产的增值税怎么处理
  • 预交企业所得税计算
  • 农产品没有发票怎么办
  • 商业零售企业商品进销差价
  • win7系统双击不能打开我的电脑
  • linux图片编辑软件
  • win8.1的开始菜单在哪
  • win10系统如何添加隐藏wifi
  • mac版cad2022使用教程
  • centos6.1安装
  • hpz12进程
  • fpassist.exe是什么进程 有什么作用 fpassist进程查询
  • 拉伸设置
  • easyui combobox设置值
  • Android OnTouchEvent, onClick, onLongClick调用机制
  • vue中父子组件如何通信的
  • jquery easyui插件
  • 社保已经申报成功未缴费在哪交费
  • 买了发票但是税控机里显示没有发票怎么办?
  • 大走访 方案
  • 深圳车牌注销需要车辆到场吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设