问题背景:

在做主线任务时发现完成任务后的特效显示穿透上面的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的遮挡问题的更多相关文章

  1. UGUI 粒子特效与UI层级问题

    游戏中,界面上有些按钮之上需要放置一个特效,或者有些区域显示比如image上显示一个特效,这时候如果再打开一个UI,我们需要让新的UI显示在特效上层,而不是被特效遮挡,这是就需要设置特效的渲染顺序. ...

  2. UGUI中显示粒子特效

    今天在UGUI上显示粒子特效的时候遇到的一些问题,Mark一下.原理:修改特效中每一个ParticleSystem的Layer为UI,并且把ParticleSystemRenderer.sorting ...

  3. Mask裁切UI粒子特效或者3D模型

    刚好前几天有人问我这个问题,再加上新项目也可能用,所以这两天就研究了一下.其实如果粒子特效 和3D模型 都用RenderTexture来做的话就不会有裁切的问题,但是粒子特效用RenderTextur ...

  4. Unity中的粒子特效的 RendererQ 排序

    这里接https://www.cnblogs.com/luguoshuai/p/10021660.html 这里介绍两套粒子排序的方法. 首先声明,这两套排序方法均不是本人所写,是在项目开发的过程当中 ...

  5. 使用particles.js实现网页背景粒子特效

    得知途径 B3log提供了两套博客系统,一个是用Java开发的,叫做Solo,我也是在网上搜索Java博客系统时发现了它,之后才了解了B3log:还有一个是用Go语言开发的,叫做Pipe.其中Solo ...

  6. Vue 动态粒子特效(vue-particles)

    图上那些类似于星座图的点和线 是由vue-particles生成的,不仅自己动,而且能与用户鼠标事件产生互动. 是非常炫的一种动态特效 可以在Vue项目中使用,需要安装第三方依赖 使用步骤 1. 安装 ...

  7. 【Stage3D学习笔记续】真正的3D世界(五):粒子特效

    先看效果,按下空格键添加粒子特效: 一般而言粒子特效的实现都是比较复杂的,且不说实现粒子特效的编码和设计,光是编写一个粒子编辑器就不是简单的一件事,但是作者使用了很取巧的方式来完成,我们接下来深入代码 ...

  8. JParticles 2.0 发布,打造炫酷的粒子特效

    JParticles 2.0 发布,打造炫酷的粒子特效.不好意思哈,在这么繁花似锦的世界里,标题不得不取得吸引眼球一点哈,不然...还是不啰嗦了,我们进入正题吧 简单介绍一下 JParticles 2 ...

  9. UGUI 中Dropdown控件的使用经验

    UGUI 中Dropdown控件的使用经验 在Untiy的UGUI 刚出来的时候,是没有“下拉列表”(Dropdown)控件的,这在无形中给我们的UI界面开发带来困难,不过在Untiy5.2.2之后这 ...

随机推荐

  1. String,StringBuffer与StringBuilder的区别?? 缓存

    转: String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主 ...

  2. linux makefile中一些复制运算的区别

    Makefile 中  :=. ?= .+= .=的区别 = 是最基本的赋值:= 是覆盖之前的值?= 是如果没有被赋值过就赋予等号后面的值,如果已经被赋值则就用之前的赋值+= 是添加等号后面的值

  3. Monte Carlo Method(蒙特·卡罗方法)

    0-故事: 蒙特卡罗方法是计算模拟的基础,其名字来源于世界著名的赌城——摩纳哥的蒙特卡罗. 蒙特卡罗一词来源于意大利语,是为了纪念王子摩纳哥查理三世.蒙特卡罗(MonteCarlo)虽然是个赌城,但很 ...

  4. 浏览器开发者工具console

    浏览器开发者工具基本使用教程 谷歌Chrome浏览器开发者工具教程-基础功能篇 - 算命de博客 - CSDN博客 JavaScript Console 对象 | 菜鸟教程

  5. Vim内直接使用p粘贴系统剪切板

    解决方法 set clipboard=unnamed

  6. JS学习笔记Day23

    一.什么是Promise (一)Promise是ES6新增的解决异步(非阻塞)中存在的问题而产生的构造函数 二.Promise中的三种状态 pending(进行中) resoved(成功后) reje ...

  7. 基于Redis的分布式锁真的安全吗?

    说明: 我前段时间写了一篇用consul实现分布式锁,感觉理解的也不是很好,直到我看到了这2篇写分布式锁的讨论,真的是很佩服作者严谨的态度, 把这种分布式锁研究的这么透彻,作者这种技术态度真的值得我好 ...

  8. 题解 P4753 【River Jumping】

    这道神奇的模拟题,带一点贪心,其实蛮水的,仔细思考就能ac. 首先我们模拟一下样例2 发现其实答案0 1 2 3也可以,仔细观察题目,我们发现了一句有意思的话:允许输出任意一组答案. 所以就可使用xj ...

  9. DUMP 3.8 企业级电商项目 支付宝之类

    ① 沙箱登录:https://openhome.alipay.com/platform/appDaily.htm 获得一个 使用环境描述 APPID.授权回调地址.沙箱钱包哪里下载之类的 ② 沙箱环境 ...

  10. 文件上传(StringMVC)

    我们经常会使用的一个功能是文件下载,既然有文件下载就会有文件上传,下面我们来看一下文件上传是如何实现的 首先准备好一个页面 jsp <style type="text/css" ...