栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > Unity3D

【虚拟仿真】Unity3D中如何实现让3D模型显示在UI前面

Unity3D 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【虚拟仿真】Unity3D中如何实现让3D模型显示在UI前面

推荐阅读

  • CSDN主页
  • GitHub开源地址
  • Unity3D插件分享
  • 简书地址
  • 我的个人博客
  • QQ群:1040082875

大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。

一、前言

最近有小伙伴在群里问我,如何将3D模型显示在UI前面,比如这样:

我心想使用RawImage进行映射不就行了,结果变成了这样:


让我恨铁不成钢,所以,就总结了这篇文章,希望可以对小伙伴有些帮助。

这篇文章讲解使用两种方法实现3D模型在背景图前:

1、使用UI摄像机
2、使用RawImage

二、效果图


下面是背景图,背景图上面是模型。

三、使用UI相机实现3D模型在前 第一步:新建UICamers相机

新建一个Camera,重命名为UICamera,然后设置一下参数:

Position改为:-4000,0,0(拉远点就行,不挡住模型就行)
ClearFlags改为:Don’t Clear(屏幕的未绘制部分是空的)
Culling Mask改为:UI(只渲染UI层)
Projection改为:Orthographic(正交相机,在这种投影模式下,无论物体距离相机距离远或者近,在最终渲染的图片中物体的大小都保持不变。)
Clipping Planes改为:Nar:0.3,Far:100(摄像机照射的最近和最远距离,这个100不能改,跟UI的距离是100,这个是在 Canvas组件的Plane Distance中设置的)

Depth改为:1(MainCamer的Depth为-1,这样就可以保持3D模型在前了)

去掉Audio Listener组件(保留MainCamer对象上的这个组件就够了)

注意:上面的参数不想看,可以直接按照下面的图片对照修改。

第二步:设置Canvas的渲染模式为Camera

Canvas的修改就简单了,将Rende4rMode改为SCreen Space -Camera,然后将UICamera拖入Render Camera卡槽中即可:

第三步:3D模型就在背景图前面了

四、使用RawImage实现3D模型在前 第一步:创建RawImage组件爱你

在Hierarchy视图中,首先选择创建→UI→Image,设置一个背景图:

然后选择创建→UI→RawImage创建一个RawImage:

第二步:创建RenderTexture渲染材质

要实现将摄像机渲染画面传递给RawIamge需要创建一个RenderTexture渲染材质,在Project视图中,选择创建→RenderTexture:

设置参数:

第三步:将摄像机渲染画面传递给RawImage

将摄像机渲染画面给Render Texture:

将Render Texture渲染画面传递给RawImage:

效果图:

然后将屏幕的未绘制部分清理掉:

效果图:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/897950.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号