Unity入门操作_ UGUI_ 基础组件_024

本文介绍了Unity的UI系统基础组件Canvas及其重要组件Canvas Scaler的使用,详细讲解了Canvas Scaler在不同模式下的工作原理,如何实现屏幕适配,以及Pixel Perfect的概念,帮助开发者理解UGUI的自适应布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UI即User Interface(用户界面)的简称
好的UI设计不仅是让软件变得有个性有品味,还要让软件的操作变得舒适、简单、自由、充分体现软件的定位和特点。

画布Canvas
Canvas是Unity新UI系统里的游戏对象,可以译为“画布”。UI 系统中所有的 UI 控件都应该被“绘制”在它的上面,也就是说所有的 UI 控件都应该是它的子对象。
注意:若是开发者在未创建 Canvas 的时候,就先创建了其它的 UI 控件(例如 Image),那么 Unity 会自动为其创建 Canvas,并将新创建的 UI 控件置于 Canvas 下,成为后者的子对象,如图所示。
这里写图片描述
在 Unity 中,单击 GameObject|UI|Canvas 命令,即可在 Hierarchy 视图里创建名为 Canvas的游戏对象。游戏对象 Canvas 上,还有一个同名的组件,如图
这里写图片描述
看Canvas Scaler。UGUI在处理自适应。
这里写图片描述
UI Scale Mode :Scale With Screen Size 表示以宽度为标准缩放

Canvas Scaler 选择
Scale With Screen Size,
Screen Match Mode 选择 Match Width Or Height,比例设为1,即只和高度进行适配;

Canvas Scaler:
这是一个理解起来相当繁琐复杂的一个组件,但又是一个至关重要的组件,不彻底了解它,可以说对UGUI的布局和所谓的“自适应”就没有一个完整的认识。

Canvas Scale指的是UI Canvas整体的缩放比例,
这个值在Canvas 的Render Mode为 Screen Space – Overlay 的情况下默认为1,在 Canvas 的 Render Mode 为 Screen Space – Camera 的情况下则不一定为1,会受到渲染UI的摄像机 参数影响(如果为Perspective 相机,会受到 Field Of View影响,如果是 Orthographic相机,会受到 Size影响)。

Canvas Scaler存在的意义:为了适应不同的分辨率,我们可能会允许适当的UI整体性缩放,外加一些尽可能少的布局微调。 这样就能达到一个比较理想的效果。如果没有这个组件,Canvas的Scale默认情况下永远固定不变,那么分辨率变化时,只能单纯依靠锚点信息去调整UI,会对整体布局产生较大的影响,不能够达到“自适应”的目的。

PixelPerfect(完美像素)指的是一个UI素材本身的像素对应屏幕上一个像素的情况,这种情况下UI素材映射到屏幕上时没有任何拉伸和压缩,这种情况下UI显示效果非常清晰完美。

Ui Scale Mode–Scale With Screen Size根据屏幕尺寸来调整UI的缩放值
Reference Resolution:参考分辨率,即一开始制作时选定的屏幕分辨率,后面的选项参数都是根据它来计算的。

Screen Match Mode—Match Width Or Height
Match是一个滑条,拉在最左时是Width ,最右时是Height,中间则是按比例混合。

当处于最左边时,屏幕高度对于UI大小完全没有任何影响,只有宽度会对UI大小产生影响。假设实际分辨率宽度为Reference Resolution宽度的x倍,则UI整体缩放为Reference Resolution状态下的x倍。也就是说只有宽度等于Reference Resolution宽度时,才能做到pixel perfect,否则像素就会有拉伸。
当处于最右边时,与上述情况正好相反,决定整体缩放值的是高度,而宽度则没有任何影响。

处于中间某处时,对上述两者的影响进行权重加成。
Screen Match Mode:Expand
当屏幕分辨率大于参考分辨率时,选择变化较小的一个方向(横向还是纵向),作为放大Canvas Scale的标准,另一方向上的变化则是在整体缩放以后再进行补偿性的变化。此举旨在减少扩大分辨率时由于非等比扩大而对UI整体布局造成影响。适合制作较小标准尺寸,扩充到较大屏幕。

例如:Reference Resolution为800*600,(假设此时Canvas Scale为(1,1,1))。如果实际分辨率为800*800,那么Canvas Scale还保持为(1,1,1)因为宽度没有发生变化,只是单纯的高度增加了200。所以势必对布局造成一定得影响。1000*600的情况也是一样,Canvas Scale没有变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值