游戏UI和特效层级关系处理

发表于2017-09-30
评论0 3.7k浏览

下面和大家介绍的湿游戏UI和特效层级关系处理,在游戏开发的过程中经常会遇到特效和游戏ui以及3D模型之间的层级关系问题,如果处理不好将会是一个很麻烦的问题。

关于层级关系的处理,有很多方法和思路,可以通过分别建立UI相机,特效相机,模型相机等来处理层级效果,也可以通过修改物体的渲染顺序进行处理。

之前本人一直是用的前一种方式,当层级关系没有那么复杂的时候确实是一种简单有效的方式。但是如果游戏的层级关系很复杂,比如最底层是个UI,UI上面有个特效,特效上面还要覆盖UI,UI上面还要叠加特效...(别再让我看到策划,谢谢...)就会很蛋疼,因为出于效率你不可能去创建无限个相机。在此,分享一下通过后一种处理方式的思路。

1.了解UI的渲染层级

NGUI中,常用的UIPanel等都有自己的渲染层级,进入UIPanel.cs脚本查看源码,我们会发现它默认的渲染层级是3000



所以,如果我们选择默认层级的话,后面我们如果新建一个粒子特效,如果要显示在他的前面,就要大于3000


2.编写脚本


我们可以写一个脚本,脚本很简单,仅仅是为了向大家展示原理,没有做层级的统一管理。通过控制物体的渲染层级来统一 的调控渲染顺序。


3.演示

将编写的脚本挂在新建的粒子特效上,渲染层级设成2999


运行后发现粒子显示在了背景ui后面


将层级改成3001,发现粒子显示在了背景UI前面


如果需要在粒子特效前面再叠加一层UI,可以把上层ui的渲染层级设成3002


运行效果就是特效夹在两层UI之间


如果上面还要放其他的特效之类的,可以一次类推...


4.总结

这里我们只是简单的实现了一下,主要还是要弄清里面的原理,就是要弄清他们的渲染顺序,如果物体较多,我们不可能每个上面都要挂这么一个脚本,就需要去优化,管理,这里就不多说...

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引