Unity3D中如何实现让3D模型显示在UI前面
一、前言
这篇文章讲解使用两种方法实现3D模型在背景图前:
1、使用UI摄像机
2、使用RawImage,这种方式只能用于展示,不能用于触控。
以上两种都不能用于触控。
经使用验证,以下方式正确
1. 建立两个Canvas
2. 一个将Render Mode设置为 Screen Space - Overlay放置正常的按键等UI(不会被模型遮挡,始终显示在最前面)
一个将Render Mode设置为 Screen Space -Camera添加一个Image的背景图,将背景的Transform 的stretch设置为全屏模式就行。这个就是背景图的设置。
二、效果图
下面是背景图,背景图上面是模型。
三、使用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:
效果图:
然后将屏幕的未绘制部分清理掉:
效果图:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)