UGUI中粒子特效与UI的遮挡问题
问题背景:
在做主线任务时发现完成任务后的特效显示穿透上面的UI层,不美观,策划不乐意了,抓紧解决下
解决思路:
首先讲下影响渲染顺序的因素:
能够影响渲染顺序的因素有:
1、Camera Depth
相机组件上设置的相机深度,深度越大越靠后渲染。
2、Sorting Layer
在Tags & Layers设置中可见
3、Order In Layer
相对于Sorting Layer的子排序,用这个值做比较时只有都在同一层时才有效。
4、RenderQueue
Shader中对Tags设置的“Queue”。
影响程度:
1、Camera Depth
永远最高。Camera Depth小的一定先进渲染管线。
2、当Sorting Layer和Order In Layer相同时
RenderQueue小的先进渲染管线。
3、当Sorting Layer和Order In Layer不相同时!两种情况
1. 当两个材质使用了不同的RenderQueue,且这两个RenderQueue都在[0~2500]或[2501~5000]时,SortingLayer和OrderInLayer的排序生效。
2. 当两个材质使用了不同的RenderQueue,且这两个RenderQueue分别在[0~2500]和[2501~5000]时,则一定会按照RenderQueue绘制,无视SortingLayer、OrderInLayer的排序。
在这只说两种:
1.调节粒子系统Particle System中Order in Layer
这里注意下Sorting Layer和Order in Layer 的区别
在Sorting Layer中可以Add Sorting Layer ,显示的优先级为从上到下 (不同层)。
在 Order in Layer 中我们可以指定同一层Sorting Layer 的优先级(同一层级)
比如 两个游戏物体的Sorting Layer同为role层 ,但是第一个游戏物体的Order in Layer 为0,而第二个游戏物体的Order in Layer 为1 ,则第二个游戏物体的显示优先级高于第一个游戏物体。
不过研究发现,此方式使用2DSprite,通过层级设置,但是Image不行
2.粒子系统的渲染队列Render Queue
我在这里采取了这种方式,是这样,策划的要求是不能动当前粒子特效自身的效果,并且有上层UI时不能穿透
首先不能动当前粒子特效的效果也就意味这,显示特效时如果调了特效的渲染队列,就变了特效的效果,第二有上层UI时还不能穿透,我就想那就动态控制下这粒子的渲染队列吧,这地方也简单,就是有上层UI时和没有时切换下状态就OK了
查看了下美术的粒子效果时shader中的渲染队列值分别如图:
并且自己手动调整了下看了下达到策划需求时的渲染队列值要小于3001即可,其子特效如下:
是3000,而要求是低于2900才可以达到效果。
好不多说,代码很简单。
具体代码:
Coroutine ControlEffectRenderCor;
IEnumerator FindControlEffectRender(int QueueValueOne,int QueueValueTwo)
{
while (ControlEffectRender==null)
{
yield return null;
}
Material[] materArr= ControlEffectRender.GetComponent<ParticleSystem>().GetComponent<Renderer>().materials;
for (int i = ; i < materArr.Length; i++)
{
materArr[i].renderQueue = QueueValueOne;
}
ControlEffectRender.transform.GetChild().GetComponent<ParticleSystem>().GetComponent<Renderer>().material.renderQueue = QueueValueTwo;
}
就这个简单的函数实现,
这里ControlEffectRender指的是特效GameObject,这样就OK了。
新手上路,很多都是不解原理,达不到对症下药,只知道这种病症症状这种药可缓解,欢迎各位前辈指点提携
UGUI中粒子特效与UI的遮挡问题的更多相关文章
- UGUI 粒子特效与UI层级问题
游戏中,界面上有些按钮之上需要放置一个特效,或者有些区域显示比如image上显示一个特效,这时候如果再打开一个UI,我们需要让新的UI显示在特效上层,而不是被特效遮挡,这是就需要设置特效的渲染顺序. ...
- UGUI中显示粒子特效
今天在UGUI上显示粒子特效的时候遇到的一些问题,Mark一下.原理:修改特效中每一个ParticleSystem的Layer为UI,并且把ParticleSystemRenderer.sorting ...
- Mask裁切UI粒子特效或者3D模型
刚好前几天有人问我这个问题,再加上新项目也可能用,所以这两天就研究了一下.其实如果粒子特效 和3D模型 都用RenderTexture来做的话就不会有裁切的问题,但是粒子特效用RenderTextur ...
- Unity中的粒子特效的 RendererQ 排序
这里接https://www.cnblogs.com/luguoshuai/p/10021660.html 这里介绍两套粒子排序的方法. 首先声明,这两套排序方法均不是本人所写,是在项目开发的过程当中 ...
- 使用particles.js实现网页背景粒子特效
得知途径 B3log提供了两套博客系统,一个是用Java开发的,叫做Solo,我也是在网上搜索Java博客系统时发现了它,之后才了解了B3log:还有一个是用Go语言开发的,叫做Pipe.其中Solo ...
- Vue 动态粒子特效(vue-particles)
图上那些类似于星座图的点和线 是由vue-particles生成的,不仅自己动,而且能与用户鼠标事件产生互动. 是非常炫的一种动态特效 可以在Vue项目中使用,需要安装第三方依赖 使用步骤 1. 安装 ...
- 【Stage3D学习笔记续】真正的3D世界(五):粒子特效
先看效果,按下空格键添加粒子特效: 一般而言粒子特效的实现都是比较复杂的,且不说实现粒子特效的编码和设计,光是编写一个粒子编辑器就不是简单的一件事,但是作者使用了很取巧的方式来完成,我们接下来深入代码 ...
- JParticles 2.0 发布,打造炫酷的粒子特效
JParticles 2.0 发布,打造炫酷的粒子特效.不好意思哈,在这么繁花似锦的世界里,标题不得不取得吸引眼球一点哈,不然...还是不啰嗦了,我们进入正题吧 简单介绍一下 JParticles 2 ...
- UGUI 中Dropdown控件的使用经验
UGUI 中Dropdown控件的使用经验 在Untiy的UGUI 刚出来的时候,是没有“下拉列表”(Dropdown)控件的,这在无形中给我们的UI界面开发带来困难,不过在Untiy5.2.2之后这 ...
随机推荐
- String,StringBuffer与StringBuilder的区别?? 缓存
转: String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主 ...
- linux makefile中一些复制运算的区别
Makefile 中 :=. ?= .+= .=的区别 = 是最基本的赋值:= 是覆盖之前的值?= 是如果没有被赋值过就赋予等号后面的值,如果已经被赋值则就用之前的赋值+= 是添加等号后面的值
- Monte Carlo Method(蒙特·卡罗方法)
0-故事: 蒙特卡罗方法是计算模拟的基础,其名字来源于世界著名的赌城——摩纳哥的蒙特卡罗. 蒙特卡罗一词来源于意大利语,是为了纪念王子摩纳哥查理三世.蒙特卡罗(MonteCarlo)虽然是个赌城,但很 ...
- 浏览器开发者工具console
浏览器开发者工具基本使用教程 谷歌Chrome浏览器开发者工具教程-基础功能篇 - 算命de博客 - CSDN博客 JavaScript Console 对象 | 菜鸟教程
- Vim内直接使用p粘贴系统剪切板
解决方法 set clipboard=unnamed
- JS学习笔记Day23
一.什么是Promise (一)Promise是ES6新增的解决异步(非阻塞)中存在的问题而产生的构造函数 二.Promise中的三种状态 pending(进行中) resoved(成功后) reje ...
- 基于Redis的分布式锁真的安全吗?
说明: 我前段时间写了一篇用consul实现分布式锁,感觉理解的也不是很好,直到我看到了这2篇写分布式锁的讨论,真的是很佩服作者严谨的态度, 把这种分布式锁研究的这么透彻,作者这种技术态度真的值得我好 ...
- 题解 P4753 【River Jumping】
这道神奇的模拟题,带一点贪心,其实蛮水的,仔细思考就能ac. 首先我们模拟一下样例2 发现其实答案0 1 2 3也可以,仔细观察题目,我们发现了一句有意思的话:允许输出任意一组答案. 所以就可使用xj ...
- DUMP 3.8 企业级电商项目 支付宝之类
① 沙箱登录:https://openhome.alipay.com/platform/appDaily.htm 获得一个 使用环境描述 APPID.授权回调地址.沙箱钱包哪里下载之类的 ② 沙箱环境 ...
- 文件上传(StringMVC)
我们经常会使用的一个功能是文件下载,既然有文件下载就会有文件上传,下面我们来看一下文件上传是如何实现的 首先准备好一个页面 jsp <style type="text/css" ...