Unity Canvas Scaler详解

来源:互联网 发布:abbyy finereader mac 编辑:程序博客网 时间:2024/05/21 17:01

Canvas Scaler 有如下属性:
UI Scale mode:

其中Constant Pixel Size :
连续的像素大小,这也就意味着,你布局的UI元素 都是实际的大小,比如你在当前分辨率界面上建了一个50px * 50 px 那么当你的分辨率变大时,你就要重新设置,不然50 * 50 在新的分辨率下 就会非常 难看。
而且这个是像素大小,即使没有改变分辨率,在不同设备上(像素大小可能不同)的表现也有可能很诡异。

Scale with screen size(主要说明就这个进行):
和屏幕大小一起缩放, 这个非常常用,这样就确保在不同分辨率下,当前UI 不会出现大的偏差。

Constant physical size:
连续的 物理大小,与第一条相对,在不同像素的设备上都会有良好的表现,比如 2cm * 2cm, 在不同设备上都会这么大。

Reference Solution: 参考 分辨率,这个一般自己手动设置,你想要多大,就设置多大
这里使用 1600 * 900

以下详解一下 Scale Match mode,通常和上边Reference Solution 搭配使用:
在Game视口下: Display 1 右边有一个比值,如16:10,这个就是实际的视口宽高比,而
这个如果和我们的Reference Solution 不一样,我们要怎么做。

Match wide or height(匹配宽或高):
出现滚动条, 左宽右高, 滚动条的数值代表 宽,高的权重,0 代表宽优先,1代表高优先
0.5代表双方权重一样,一起缩放。

Expand(扩张):如果视口比 小于 参考分辨率, 以5:4为例,那么视图就会将1600 * 900
扩张到1600 * 1280, 也就是宽扩张,多余的部分用蓝色填充,蓝色这个是天空盒,可以设置。
有时一侧会出现黑色,这个不是场景,一般不用理会。

Shrink(收缩):同理。

Reference pixels per Unit(每个单位的参考像素点,多针对Sprite):这是个默认值,只有当Sprite本身没有Reference pixels per Unit这个属性时才会使用,否则Sprite本身的属性会覆盖掉默认值。 默认100
用处:我们设计了一个 2单位 * 2(单位)(单位通常是图片设计者指定的)的Sprite,然后没有设置这个属性,Unity就会把它变为200px * 200px 的Sprite。

原创粉丝点击