第一种方法

第一步  

在Project 下 新建一个RenderTexture 

第二步

新建一个游戏对象 我这里命名为 Img-player挂上一个RawImage 用来显示人物  拖入刚刚创建的 RenderTexture 

第三步

新建一个相机 

拖入刚刚创建的 RenderTexture  将模式改为下面的样子 Camera为正交 Orthographic  将模型拖入此相机的视野中 如果模型不清楚可以缩放

调下面的Size Far参数到合适程度  已把人物模型全包括 上下左右旋转也不出相机范围为佳

Unity UGUI 让3D模型显示在UI前面进行英雄角色选择之美_Unity教程

点击新建的相机 我们可以在场景预览图中看到显示的效果 

Unity UGUI 让3D模型显示在UI前面进行英雄角色选择之美_Unity教程_02

 

最后一步

调整宽高  此参数最好为 RenderTexture  size的一半

Unity UGUI 让3D模型显示在UI前面进行英雄角色选择之美_Unity_03

大功告成

Unity UGUI 让3D模型显示在UI前面进行英雄角色选择之美_Unity教程_04

 

是不是觉得很麻烦 下面要说到的第二种就简单多了 

 Canvas  render mode 选择为 Screen Space-Camera 

然后UICamera  为正交 Orthographic  然后人物模型新增一个Model Layer  将此层添加到UICamera中

这样可以被UICamera获取到  接着把模型至于Canvas前即可

两种方法原理不一样 自己按需选择最佳方法

 

为了便于大家理解 下面说说Canvas 的三种Render Mode 渲染模式 这里引用Unity5.X从入门到精通里的话

Screen Space-Camera:

画布以特定的距离放置在指定的相机前,UI元素被指定的相机渲染,相机设置会影响UI呈现

这句话有几个关键字 相机 指定的距离(自己调节) 指定的相机 (选择这个模式 需要我们拖入一个相机来进行渲染 )

也就是我们可以调整相机的参数  来达到显示各种渲染层的效果 也就是说 UI和3D等可以并存 并可以有效的调参数 这种模式下 我们需要设置相关的参数来达到一个好的显示

 

Screen Space-Overlay:

使画布拉伸以适应全屏大小,并且使GUI控件在场景中渲染于其他物体的前。如果调整屏幕大小或改变分辨率,画布将会自动地改变大小以适应屏幕显示。

这里面有几个关键字 屏幕 GUI控件 自适应  

 也就是说  UI会自动始终显示在屏幕最前方 并且调整参数是无效的  因为相机的深度是 此模式是以屏幕UI显示为重点

World Space  :

这模式就很简单的 和普通的物体没什么区别的 可以置于场景中 在3D物体前也可以在后