撰写本文时使用Unity的版本为2017.4.10f1(64bit)

1.描述问题

  需求:通过UGUI制作一个界面之后,我需要在界面的后面跟前面各添加一个特效。

  问题:同一层级UI是最后渲染的,所以UI永远是在最上面

  

  

  解决:分别调整ui_effect1、imageWhile、ui_effect2这三个物品的渲染层级

2.层级知识补充

  https://blog.csdn.net/leansmall/article/details/66478412

3.解决方案

  需要设置层级的Object分为三种:UI、粒子系统、3D Object

  (1) UI:添加Canvas组件控制,勾选Override Sorting之后可以设置Sorting Layer和 Order in Layer

   

  (2) 粒子系统:设置Render下的Sorting Layer和 Order in Layer

  

  (3) 3D Object:

    a.代码修改Mesh Renderer的Sorting Layer和 Order in Layer,Mesh Renderer在预制体上无法直接修改,但是继承于Renderer ,是有Sorting Layer和 Order in Layer参数可以修改的

    

    

    b.挂上Sorting Group组件直接在预制体里修改

    

4.方案优化

  使用统一的脚本组件挂于UI或者特效上,用于设置当前Object及所有子物体的层级。

  优点:(1)组件统一,可以在代码里遍历修改

     (2)特效一般子物体很多,挂在根节点,不用逐个设置层级

using UnityEngine;

[ExecuteInEditMode]
public class UIDepth : MonoBehaviour
{
public int order = ;
public bool isUI = false; private void Start()
{
if(isUI)
{
Canvas canvas = GetComponent<Canvas>();
if(canvas == null)
{
canvas = gameObject.AddComponent<Canvas>();
} canvas.overrideSorting = true;
canvas.sortingOrder = order;
}
else
{
Renderer[] rs = GetComponentsInChildren<Renderer>();
foreach(var r in rs)
{
r.sortingOrder = order;
}
}
}
}

5.方案建议

  (1)界面分级:

  一级界面(层级设置只在0-10),二级界面(10-20),三级界面(30-40),出现层级问题只需调整对应级界面的层级,避免牵一发而动全身的情况,如:一级界面原本没有特效,后来加了一个特效,后面界面层级全都要调高

Unity UGUI和特效(含粒子系统和3D Object)之间层级问题的更多相关文章

  1. windows系统和ubuntu虚拟机之间文件共享——samba

    参考:http://www.cnblogs.com/phinecos/archive/2009/06/06/1497717.html 一. samba的安装: sudo apt-get insall  ...

  2. 使用Xshell在Windows系统和Linux系统之间进行文件传输

    版权声明:本文为转载内容. 原博客内容https://blog.csdn.net/love666666shen/article/details/75742077 Windows系统在安装虚拟机cent ...

  3. 转载:Linux系统和Linux系统之间如何实现文件传输

    两台Linux系统之间传输文件 听语音 | 浏览:13183 | 更新:2014-07-15 15:22 | 标签:linux 1 2 3 4 5 6 分步阅读 如何在Linux系统之间传输文件及文件 ...

  4. 一种基于uCos-II操作系统和lwIP协议栈的IEEE-1588主站以及基于该主站的报文处理方法

    主站以及应用于电力系统的支持IEEE‐1588协议的主时钟(IEEE‐1588主站)的实现方法.该方法是在一个低成本的硬件平台上,借助uCos‐II操作系统和TCP/IP的协议栈,对以太网数据进行了分 ...

  5. 下一代大数据系统和4S标准

    大数据行业发展到今天,它创造的价值和带来的社会效应,大家已经看得很明白,同时很多问题和不足也暴露出来,特别是hadoop能够提供的数据处理能力,现在已经挖掘到极限,但是现在各行业对数据的存储和计算需求 ...

  6. 操作系统和Python的发展历程

    一:操作系统的发展历史: 操作系统:什么是操作系统?我们首先想到的是电脑,,也就是所谓的Windows8,Windows7,或者XP系统和Windows10,当然也包括我们手机的安卓系统或者IPhon ...

  7. Unity UGUI —— 无限循环List

    还记得大学毕业刚工作的时候是做flash的开发,那时候看到别人写的各种各样的UI组件就非常佩服,后来自己也慢慢尝试着写,发现其实也就那么回事.UI的开发其实技术的成分相对来说不算多,但是一个好的UI是 ...

  8. Unity UGUI图文混排源码(三) -- 动态表情

    这里是根据图文混排源码(二)进一步修改的,其他链接也不贴了,就贴一个链接就好了,第一次看这文章的同学可以先去看看其他几篇文章 Unity UGUI图文混排源码(二):http://blog.csdn. ...

  9. Unity UGUI图文混排源码(二)

    Unity UGUI图文混排源码(一):http://blog.csdn.net/qq992817263/article/details/51112304 Unity UGUI图文混排源码(二):ht ...

随机推荐

  1. SQL 更新

    SQL UPDATE 语句(更新表中的记录) UPDATE 语句用于更新表中的现有记录. SQL UPDATE 语句 UPDATE 语句用于更新表中已存在的记录. SQL UPDATE 语法 UPDA ...

  2. Andrdoid中对应用程序的行为拦截实现方式之----从底层C进行拦截

    之前的一篇概要文章中主要说了我这次研究的一些具体情况,这里就不在多说了,但是这里还需要指出的是,感谢一下三位大神愿意分享的知识(在我看来,懂得分享和细致的人才算是大神,不一定是技术牛奥~~) 第一篇: ...

  3. (转)OpenFire源码学习之十八:IOS离线推送

    转:http://blog.csdn.net/huwenfeng_2011/article/details/43458213 IOS离线推送 场景: 如果您有iOS端的APP,在会话聊天的时候,用户登 ...

  4. OS: 生产者消费者问题(二) ---- 系统V IPC通信-信号量和共享内存

    在上一篇“OS: 生产者消费者问题(多进程+共享内存+信号量)”中提到的方法二: 如果进程之间并没有父子关系,但是协商好了共享存储的 KEY , 那么在每个进程中,就可以通过 KEY 以及 shmge ...

  5. js滚动页面到固定位置进行操作

    $(window).scroll(function () { var scrollTop = $(this).scrollTop(); var scrollHeight = $("#div& ...

  6. Dubbo入门到精通学习笔记(十七):FastDFS集群的安装、FastDFS集群的配置

    文章目录 FastDFS集群的安装 FastDFS 介绍(参考:http://www.oschina.net/p/fastdfs) FastDFS 上传文件交互过程: FastDFS 下载文件交互过程 ...

  7. 6个步骤,全方位掌握 Kafka

    毋庸置疑,目前 Apache Kafka 是整个消息引擎领域的执牛耳者,也是大数据生态圈中颇为重量级的一员. 从最早诞生于 LinkedIn 的"分布式消息系统",到现在集成了分发 ...

  8. 防止DDOS攻击有效方法:隐藏服务器真实IP

    如今,网站服务器的安全受到越来越多的重视,但是难免会遇到黑客使用DDoS攻击网站,为了网站的安全通常都会做好防御,其中防止DDoS攻击有效方法:隐藏服务器真实IP ,该技术能够有效地保护网站的安全. ...

  9. 8u ftp 可以连接但是无法获取目录的解决办法:无法打开传输通道。原因:由于...

    来自: http://www.3566t.com/news/dlsn/1557906.html 状态:  正在取得目录列表... 命令:  CWD xinghun 响应:  250 OK. Curre ...

  10. css 折角效果/切角效果

    首先我们先创建一个图案为100像素的斜面切角的图案 html <div class="one">12345</div> css .one{ width: 1 ...