位置: 编程技术 - 正文

unity3d完美处理NGUI和特效的显示问题(unity3d quaternion)

编辑:rootadmin

推荐整理分享unity3d完美处理NGUI和特效的显示问题(unity3d quaternion),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:unity3ds,unity 3d ui,unity3d操作,unity3d documentation,unity3d完整项目,unity3d操作,unity怎么后处理,unity 后期处理,内容如对您有帮助,希望把文章链接给更多的朋友!

NGUI相当不错,但是有一点比较纠结的就是面板上显示特效的时候,你会发现要么盖住特效,要么面板永远无法盖住特效。很多人说改renderqueue,然后就能显示了,然后下面一堆楼主给力。。。。呵呵。

先从原理上解释吧,NGUI是通过调整renderqueue来显示不同层,然后它的shader是不写入z&#;的,然后特效刚好也是不写入z&#;的,所以你要控制特效和UI的关系,确实只能通过renderqueue.但是如果你只是单纯让renderqueue非常大,那么特效就会永远在面板之上。

如果你想要两个面板夹住特效,那么就需要看NGUI源代码了。

这里希望大家自己去看一下,我直接贴上修改方案:

unity3d完美处理NGUI和特效的显示问题(unity3d quaternion)

if (this.widgetInFrontOfMe != null && this.widgetInFrontOfMe.drawCall != null) { int rq = this.widgetInFrontOfMe.drawCall.renderQueue &#; 1; Debug.Log(rq); foreach (Material material in m_renderer.materials) { if(material.renderQueue != rq) { material.renderQueue = rq; } } }

首先这段代码就是将特效的renderqueu调整成你想要放置的物体的前面。然后你如果在Update()或者LateUpdate()中执行这段代码,你会发现它工作的不错,就是偶尔会闪一下,这是因为这段代码先更新了,然后NGUI才更新,所以导致滞后一帧。对于我这种完美主义者来说,这是不能接受的。所以我修改了UIPanel的源代码,然里面全部更新完毕后,再去调用这个函数。哈哈,一切都非常完美。

大致代码如下:

List<UISortBehavior> container = new List<UISortBehavior>(); public void addUISort(UISortBehavior uiSort) { if(container.Contains(uiSort)) { return; } container.Add (uiSort); } public void removeUISort(UISortBehavior uiSort) { container.Remove (uiSort); } public void updateUISort() { for(int i = 0; i < container.Count; i&#;&#;) { container[i].UpdateSortUI(); } } void LateUpdate () { if (mUpdateFrame != Time.frameCount) { mUpdateFrame = Time.frameCount; // Update each panel in order for (int i = 0; i < list.size; &#;&#;i) list[i].UpdateSelf(); int rq = ; // Update all draw calls, making them draw in the right order for (int i = 0; i < list.size; &#;&#;i) { UIPanel p = list.buffer[i]; if (p.renderQueue == RenderQueue.Automatic) { p.startingRenderQueue = rq; p.UpdateDrawCalls(); //rq &#;= p.drawCalls.size; rq &#;= p.drawCalls.size * 2; } else if (p.renderQueue == RenderQueue.StartAt) { p.UpdateDrawCalls(); if (p.drawCalls.size != 0) rq = Mathf.Max(rq, p.startingRenderQueue &#; p.drawCalls.size * 2); //rq = Mathf.Max(rq, p.startingRenderQueue &#; p.drawCalls.size); } else // Explicit { p.UpdateDrawCalls(); if (p.drawCalls.size != 0) rq = Mathf.Max(rq, p.startingRenderQueue &#; 2); //rq = Mathf.Max(rq, p.startingRenderQueue &#; 1); } p.updateUISort(); } } } /// <summary> /// Update the panel, all of its widgets and draw calls. /// </summary> void UpdateSelf () { mUpdateTime = RealTime.time; UpdateTransformMatrix(); UpdateLayers(); UpdateWidgets(); if (mRebuild) { mRebuild = false; FillAllDrawCalls(); } else { for (int i = 0; i < drawCalls.size; ) { UIDrawCall dc = drawCalls.buffer[i]; if (dc.isDirty && !FillDrawCall(dc)) { UIDrawCall.Destroy(dc); drawCalls.RemoveAt(i); continue; } &#;&#;i; } } }

unity3d接入GameCenter成就显示有问题 使用unity3d提供的Social.ShowAchievementsUI显示成就,发现还是显示的排行界面,原来重启下就好了!!!参考来自:

Unity3d HDR和Bloom效果(高动态范围图像和泛光) 文章开始先放两组效果,文章结尾再放两组效果本文测试场景资源来自浅墨大神,shader效果为本文效果HDR人们有限的视觉系统,只支持.7百万的颜色,

创建一个扇形Mesh usingUnityEngine;usingSystem.Collections;/*==============================================================================*功能描述:测试Mesh创建*创建者:cjunhong*QQ:*创建日

标签: unity3d quaternion

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

上一篇:Unity开发之接入android uc九游sdk(三)(unity接收数据)

下一篇:unity3d接入GameCenter成就显示有问题(unity连接)

  • 计提增值税比实际缴纳多
  • 一般纳税人的计税方式是什么
  • 不予认定一般纳税人
  • 金税四期正式启动
  • 税务季度申报如何网上申报填写
  • 全面一次性奖金收入扣税标准
  • 增值税抵扣可以跨月吗
  • 2021小规模纳税人减免增值税
  • 怎么知道个税是退税还是补税
  • 建筑企业施工管理人员
  • 新注册公司开银行卡流程
  • 企业职工薪酬的个人所得税纳税筹划研究
  • 制造费用明细账实例图
  • 营业外收入期末结转
  • 扣员工餐费需要缴纳个税吗
  • 收到某公司发票会计分录
  • 企业购买原材料,货款未支付
  • 个人独资企业是一般纳税人吗
  • 普票名称错了税号没错
  • 公司拖欠工资还要继续工作吗?
  • 更正申报以前个税的处理方法
  • 注销怎么做账
  • 营业收入包括的项目有
  • 微信支付宝余额为零的表情包
  • 发票已开货没发出的账务处理?
  • 缴纳人身意外保险凭证是什么
  • 应收票据的核算内容及其贴现
  • macOS Big Sur 11.2 RC 2正式发布(附更新内容)
  • 商贸企业小规模转一般纳税人条件
  • sethook.exe - sethook进程是什么文件 有何作用
  • 集体土地使用权可以抵债吗
  • Delete `␍` 最简单最有效的解决方法和解释(VScode)
  • 为什么说网络安全靠人民
  • php对接第三方支付
  • 为什么递延收益不产生所得税影响
  • 个税多计提了账务处理
  • 资产基金的明细科目
  • 有哪些员工福利
  • 缴税的会计处理
  • 开票一定要确认发票吗
  • 织梦自适应模板怎么弄
  • 一般纳税人涉及进项税额转出的有
  • 增值税发票跨月红冲操作流程
  • 帐载金额
  • 深圳税务2021
  • 工程款增值税专用发票需要写工程名称吗
  • 期末账项调整的内容包括
  • 房地产采取按揭销售的,其销售的入账时间为
  • 小微企业免税额度是多少
  • 物业管理单位收取的物业费征不征收增值税
  • 简易计税通过哪个科目核算
  • 现金日记账谁负责
  • 客户退货不退赠品怎么办
  • 银行信用贷款发放邮件后多久到账
  • 销售商品结转成本的记账凭证
  • 系统多交税款放在哪里
  • win10 impact
  • solaris 11.3
  • 电脑ios怎么安装
  • Win7计算机管理里面没有本地用户和组
  • scchost.exe - scchost是什么进程 有什么用
  • Win7旗舰版电脑亮度怎么调节?
  • win10安装的中文包在哪
  • js填写input
  • 日历控件默认日期
  • javascript解析器
  • h5抽奖转盘
  • windows运行nodejs
  • jquery animate源码
  • php监控源码
  • 微信小程序中显示app.json在项目根目录未找到怎么回事
  • jQuery使用$.ajax进行即时验证的方法
  • OKHttp源码解析-ConnectionPool对Connection重用机制&Http/Https/SPDY协议选择
  • javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
  • Android之BroadcastReceiver
  • python爬虫模拟浏览器
  • jquery根据name
  • 15个值得开发人是谁
  • 重庆国税电子税务局官网登录入口网址
  • 如何做好巡察组组员
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设