【Unity】UI、背景和3D的Camera和Canvas设置
目前存在需求
背景是指定的图片,该图片始终显示在页面中,不会因场景的视角操控发生尺寸等变化;
UI内容显示在页面最上层,同样不会因场景的视角操控发生尺寸等变化,但是当软件整个尺寸发生变化时,会跟随变化,UI内容会覆盖3D物体;
3D物体可以随着相机视角的变化而变近变远等,3D物体上可能存在UI卡片等。
需求分析
背景在最底层,3D物体在中间层,UI在最顶层。
因此背景和UI不能公用一个Canvas,3D物体也需要一个Canvas;
3D物体根据相机视角改变远近等,背景和UI不变,那么3D物体使用单独的相机,背景和UI使用对应的UI相机。
成果展示
查看相机视角控制方法
场景部分组成
三个相机的展示内容:三个相机的内容互不干扰。
主相机
背景相机
UI相机
参数设置
需要建立Sorting layer如下:
将对应的物体设置为对应的层级。
背景的相机和Canvas设置如下
需要将背景相机拖拽到背景Canvas
的RenderCamera
中
注意:Sorting Layer
和 order in Layer
参数的选择
注意Depth
参数的设置
UI的相机和Canvas设置如下
主相机的设置如下
3D物体的Canvas设置如下
一些参数的说明
Canvas组件
mode:
-
space-overlay
(屏幕空间-全局) 展示场景中的方形区域,内部的所有UI元素可见,非常吃性能 -
space-Camera
允许指定一个镜头,让系统渲染镜头内的元素
Canvas Scaler组件
UI scale Mode :
-
Constant Pixel Size
(保持像素大小) UI可以无视屏幕大小,保持像素的大小 -
scale with screen size
(随屏幕大小缩放) 根据屏幕大小适应
-reference Resolution
UI主分辨率X1280 Y720
(桌面端)
-Match height
:1 只有高度改变时 UI元素才会随之改变 -
constant physical size
(保持实体大小) 无视屏幕和分辨率大小 保持UI大小
UICamera的设置
Clear Flags
: Depth only 清除镜头的深度信息
projection
(投影类型) :Orthographic
(正交) 2D场景