【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设置如下
需要将背景相机拖拽到背景CanvasRenderCamera
注意:Sorting Layerorder 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场景

posted @ 2024-09-23 09:09  Sitar  阅读(138)  评论(0编辑  收藏  举报