问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Unity中UI、背景和3D物体的Camera和Canvas设置详解

创作时间:
作者:
@小白创作中心

Unity中UI、背景和3D物体的Camera和Canvas设置详解

引用
1
来源
1.
https://www.cnblogs.com/sitarblogs/p/18426300

本文将详细介绍在Unity引擎中如何通过设置不同的Camera和Canvas来实现背景图片、UI元素和3D物体的分层显示和交互效果。文章内容主要面向Unity开发者和游戏开发人员。

需求分析

  • 背景是指定的图片,该图片始终显示在页面中,不会因场景的视角操控发生尺寸等变化;
  • UI内容显示在页面最上层,同样不会因场景的视角操控发生尺寸等变化,但是当软件整个尺寸发生变化时,会跟随变化,UI内容会覆盖3D物体;
  • 3D物体可以随着相机视角的变化而变近变远等,3D物体上可能存在UI卡片等。

场景分层设计

背景在最底层,3D物体在中间层,UI在最顶层。因此背景和UI不能公用一个Canvas,3D物体也需要一个Canvas;3D物体根据相机视角改变远近等,背景和UI不变,那么3D物体使用单独的相机,背景和UI使用对应的UI相机。

成果展示

场景组成

场景由三个相机组成,分别是主相机、背景相机和UI相机,三个相机的内容互不干扰。

主相机设置

背景相机设置

需要建立Sorting Layer,并将对应的物体设置为对应的层级。背景的相机和Canvas设置如下:

  • 将背景相机拖拽到背景Canvas的Render Camera中
  • 注意Sorting Layer和order in Layer参数的选择
  • 注意Depth参数的设置

UI相机设置

UI的相机和Canvas设置如下:


3D物体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场景

注意事项

  • 本文内容基于Unity引擎,具体版本信息请参考原文发布日期(2024年9月)。由于Unity引擎的版本更新可能会导致某些设置方法发生变化,建议读者在实际操作时结合当前使用的Unity版本进行适当调整。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号