Canvas Scaler 探究

作者: JervieQin | 来源:发表于2017-01-18 16:51 被阅读0次

    上一篇文章有简单介绍到Canvas Scaler 在调整UI尺寸方面有很大的用处,今天我们一起来探究一下

    UI Scaler Mode (UI大小模式) 共有三种模式:constan pixel size、scale with screen size 和 constant physical size。每个模式中都有不同的参数供我们来设置。

    一、 Constant Pixel Size( 固定的UI缩放值)

    1 Scaler Factor(大小比例),就是调整UI的缩放倍数的。

    2 Reference Pixels Per Unit  (每单位代表像素量)

             UI大小 = 原图大小(Pixels)  /  (Pixels Per Unit / Reference Pixels Per Unit)

    二、Scale With Screen Size (根据屏幕尺寸来调整UI的缩放值)

    1 Reference Resolution :参考分辨率,即一开始制作时选定的屏幕分辨率,后面的选项参数都是根据它来计算的。

    2 Screen Match Mode  屏幕匹配模式

     —Match Width Or Height

       简单的说:需要竖屏时Match =0,需要横屏时Match = 1。

    —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没有变化,只是单纯宽度增加了200。但如果实际分辨率变为1000*800,那么Canvas Scale就变成(1.25,1.25,1.25)。因为宽度是参考分辨率宽度的1.25倍,高度是1.33倍,那么取较小的1.25。 这个1.25倍的意义是:整体Canvas渲染放大1.25倍,横向或纵向的变化超过了1.25倍,则靠拉伸Canvas来变化,此时因为这部分变化,可能会对布局产生一些相对较小的影响,例如相对位置、某些元素的长宽比。

    ——Shrink

       和Expand类似,但是更适合于缩小的情形。它会在屏幕尺寸缩小时,通过缩小CanvasScale尽量减少由于非等比缩小对布局产生的影响。按照影响较小的一个方向缩小的比例去缩小CanvasScale,然后再通过变形调整另外一个方向。

    三、 Constant Physical Size (UI位置和尺寸按照物理单位特定)

    1 Physical Unit  (要使用的物理单位)

    2 Fallback Screen DPI:当检测不到设备DPI时使用此项预设的值

    3 Default Sprite DPI:默认精灵的像素密度

    4 Reference Pixels Per Unit:如果一个精灵有‘Pixels Per Unit’
    的设置,那此项值将匹配 Default Sprite DPI

    参考网站:docs.unity3d.com/Manual/script-CanvasScaler.html

    相关文章

      网友评论

        本文标题:Canvas Scaler 探究

        本文链接:https://www.haomeiwen.com/subject/kzqpbttx.html