Canvas Scaler 的3种模式

Canvas Scaler 的3种模式

(金庆的专栏 2021.3)

参考:
https://wenku.baidu.com/view/83991090336c1eb91b375db8.html

Unity Canvas 有个 Canvas Scaler 组件,用来决定 Canvas 的 Scale(缩放)值。
Scale 有 X,Y,Z 3个分量,都是同一值,即在各个方向上都是同倍率缩放的。
它有3种Scale Mode。

因为设计时的宽高比与目标机型宽高比不同,Canvas 需要先增减为目标高宽比,然后再缩放。
Canvas 缩放并不影响UI元素的相互位置,只是同比缩放。
但是高宽比调整时会造成UI元素的相对位置变化,如宽度增大后,UI元素会在宽度方向上相互散开。

可以在 Unity Editor Game 页左上角分辨率下拉菜单中创建几个低分辨率屏,用来测试屏幕大小切换。
测试界面可放置2个按钮,一个锚定到左上,位于左上,一个锚定到右下,位于右下,不要strech。

3种模式如下。

Constance Pixel Size

Constance Pixel Size 模式下,Scale 总是为1。
目标机上的 Canvas 就是其分辨率大小。
因为设计时分辨率与实际分辨率不同,显示会不同。
但是图片和按钮的大小保持固定像素大小。
如果屏幕变大,UI元素就会相互散开,变小则聚拢。
如果需要缩放,只能通过程序调节。

Scale With Screen Size

随屏幕大小缩放。
该模式下有个 Reference Resolution (参考分辨率),应该设为主流机型的分辨率。
在主流机型下,Scale 为1,与设计显示相同。

https://blog.csdn.net/u011948420/article/details/112641308
2020中国移动游戏质量白皮书-WeTest 报告 Android 手机 TOP300 分辨率为 2340*1080 占 31%。

如果目标机型为 46802160,则 Scale 正好为2;如果目标机型为 1179540,则Scale为0.5.

一般情况下宽高比不同,此时Scale算法有3种,即3种Sceen Match Mode:

Match Width Or Height

匹配宽度或高度。

此时有个 Match 划动条,可以在 Width(0)…Height(1)之间。
如果为0,匹配宽度,则 Scale 为目标屏宽与参考屏宽之比;
如果为1,匹配高度,则 Scale 为目标屏高与参考屏高之比;
如果为0.5, 加权匹配,则是这2个比值的平均值。

匹配宽度时,高度方向上会有UI扩散或聚拢。
匹配高度时,宽度方向上会有UI扩散或聚拢。
加权匹配时,UI在高上扩散宽上聚拢,或者在高上聚拢宽上扩散。

Expand

增加。先增加宽或高到目标宽高比。该增加方向UI元素会散开。

Shrink

减少。先减少宽或高到目标宽高比。该减少方向UI元素会聚拢。

Constant Physical Size

固定物理大小。
随着4k屏的出现,屏幕DPI会很大,许多设备的像素点非常小。
同样的按钮,在高DPI下,如果固定像素大小,则会非常小,这时适合用该模式。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值