unity UGUI与模型混合显示(ui显示特效)

来源:互联网 发布:达内java培训班有用吗 编辑:程序博客网 时间:2024/05/19 18:38

题外:一直想写点啥,可是总是些零碎的知识,弄不成一篇文章,有一种博客是别人的博客,还是得好好学习学习

前言:在做项目的时候会遇到将模型与UI混合编排,以前用ngui 的时候我记得是可以直接把模型放在其中,可是换了ugui有时候就不行了,下面我将给各位演示一下,我用的unity5.5,下面我用两种方法实现。

第一种方法:这是官方Ugui demo中的方法,就是利用相机,创建Render Texture,实现混排

1:首先在你的project视图中右键点击create Render Texture

2:然后在新建一个摄像机,对准你的模型

3:给摄像机target texuure赋予Render Texture

此时你可以查看你的render texture 看看是否清晰,如果不符合你的要求,你可以修改render texture

4:在你的canvas 画布下面新建一个Raw Image,调整好大小,再将render texture拖入到texture中就ok 了

ps:在这里我们可以修改下camera 的 culling mask,让这个摄像机只对模型有效,比如,我在这里把模型的层级设为model,

然后选择摄像机只会对这个层级进行渲染

最后的效果图:


第二种方法:第二种方法实际上是和ngui差不多,我们知道ngui中在UI中有个UICamera对ui进行渲染,所以........

1:首先我们建立两个canvas,一个专门是背景图等等的BgCancas,一个是对UI的UICanvas,然后将两个canvas的渲染模式设置成相机渲染

对于BgCanvas我们的Plane Distance我们可以用设置大一点,然后UIcanvas我们可以设置的小一点,符合你的要求就ok

2:然后将你的模型位置调整最后呈现如下效果

最后就能实现啦

ps:如果你也和我一样,对于BgCanvas,我们不用进行任何交互,那我们大可以把Graphic raycaster remove掉,节约性能

好了两种模式就介绍到这里,这里再给大家说下,以后的项目里面,可以使用多个画布分层次渲染(至多3个),然后建立一个专门的UICamera对UI 进行渲染,可以将UIcamera的渲染模式设置成正交模式(透视模式有人说对九宫格图片而言会变模糊,具体我还没有遇到),然后将ui摄像机 的culling mask设置成UI层,也就是只对UI进行渲染,那么如果这样的话,你的粒子效果,拖痕效果等等都可以在UI上面呈现出来!!!建议用多个相机