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。
因為設(shè)計時的寬高比與目標(biāo)機型寬高比不同,Canvas 需要先增減為目標(biāo)高寬比,然后再縮放。
Canvas 縮放并不影響UI元素的相互位置,只是同比縮放。
但是高寬比調(diào)整時會造成UI元素的相對位置變化,如寬度增大后,UI元素會在寬度方向上相互散開。
可以在 Unity Editor Game 頁左上角分辨率下拉菜單中創(chuàng)建幾個低分辨率屏,用來測試屏幕大小切換。
測試界面可放置2個按鈕,一個錨定到左上,位于左上,一個錨定到右下,位于右下,不要strech。
3種模式如下。
Constance Pixel Size
Constance Pixel Size 模式下,Scale 總是為1。
目標(biāo)機上的 Canvas 就是其分辨率大小。
因為設(shè)計時分辨率與實際分辨率不同,顯示會不同。
但是圖片和按鈕的大小保持固定像素大小。
如果屏幕變大,UI元素就會相互散開,變小則聚攏。
如果需要縮放,只能通過程序調(diào)節(jié)。
Scale With Screen Size
隨屏幕大小縮放。
該模式下有個 Reference Resolution (參考分辨率),應(yīng)該設(shè)為主流機型的分辨率。
在主流機型下,Scale 為1,與設(shè)計顯示相同。
https://blog.csdn.net/u011948420/article/details/112641308
2020中國移動游戲質(zhì)量白皮書-WeTest 報告 Android 手機 TOP300 分辨率為 2340*1080 占 31%。
如果目標(biāo)機型為 46802160,則 Scale 正好為2;如果目標(biāo)機型為 1179540,則Scale為0.5.
一般情況下寬高比不同,此時Scale算法有3種,即3種Sceen Match Mode:
Match Width Or Height
匹配寬度或高度。
此時有個 Match 劃動條,可以在 Width(0)…Height(1)之間。
如果為0,匹配寬度,則 Scale 為目標(biāo)屏寬與參考屏寬之比;
如果為1,匹配高度,則 Scale 為目標(biāo)屏高與參考屏高之比;
如果為0.5, 加權(quán)匹配,則是這2個比值的平均值。
匹配寬度時,高度方向上會有UI擴散或聚攏。
匹配高度時,寬度方向上會有UI擴散或聚攏。
加權(quán)匹配時,UI在高上擴散寬上聚攏,或者在高上聚攏寬上擴散。
Expand
增加。先增加寬或高到目標(biāo)寬高比。該增加方向UI元素會散開。
Shrink
減少。先減少寬或高到目標(biāo)寬高比。該減少方向UI元素會聚攏。
Constant Physical Size
固定物理大小。
隨著4k屏的出現(xiàn),屏幕DPI會很大,許多設(shè)備的像素點非常小。
同樣的按鈕,在高DPI下,如果固定像素大小,則會非常小,這時適合用該模式。
總結(jié)
以上是生活随笔為你收集整理的Canvas Scaler 的3种模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2023美赛各题选择及思路分析
- 下一篇: uboot 的i2c读写,i2c_rea