天天看点

unity打包时UI的自适应

unity打包时UI的自适应

本文摘自 https://blog.csdn.net/qq_15020543/article/details/82595179 感谢博主分享的干货,以此记录一下。同时感谢文中的另两位博主 http://www.cocoachina.com/game/20160602/16570.html 和 https://blog.csdn.net/st75033562/article/details/52355239 。

OK,进入正题。

一、了解UGUI的锚点

首先,在搭建UI时就直接考虑好怎么设计,将UI的父级和锚点设置清晰,后面做适应事半功倍。http://www.cocoachina.com/game/20160602/16570.html 这篇文章清晰的解释了锚点和Pivot的关系。

二、设置Canvas的Canvas Scaler

1、Constant Pixel Size:

像素大小始终不变,即一个100100的图片在任何的分辨率下都占用100100的像素。简单比较好理解。Scale Factor是表示缩放倍数。比如是2时,即将上面图片整体是缩放两倍是不变形的。

2、Scale With Screen Size

这种模式应用场景多一点。首先逐个说明下:

1)Reference Resolution是开发时的分辨率。以后缩放就参考它。

2)Screen Match Mode 又包含三种模式

  • Match Width Or Height。下面包含一个Macht属性,当处于最左边时,屏幕高度对于UI大小完全没有任何影 响,只有宽度会对UI大小产生影响。假设宽度为Reference Resolution宽度的x倍,则UI整体缩放为Reference Resolution设置参数的x倍。也就是说只有宽度等于Reference Resolution宽度时,才能做到pixel perfect,否则像素就会有拉伸 ,当处于最右边时,与上述情况正好相反,决定整体缩放值的是高度,而宽度则没有任何影响 ,处于中间某处时,对上述两者的影响进行权重加成 。所以一般我们都把其放在0.5的位置(0.618也很舒服哦)。
  • Expand 缩放不剪切:当屏幕分辨率与设定不同时,选择变化较小的一个方向(横向还是纵向),进行缩放显示

    ,它会保证设计时分辨率能显示出来的缩放后依然能显示出来。

  • Shrink 缩放剪切:当屏幕分辨率与设定不同时,选择变化较大的一个方向(横向还是纵向)进行缩放显示

    ,对于超出的部分剪切不显示。

3、Constant Physical Size

保持物理上不变的方式,这个应用场景较少,具体是这样的,比如你电脑分辨率是 10002000而你的手机分辨率也是10002000。虽然电脑屏幕比手机屏幕大的多,但是他们最后显示出来图片的物理大小是一样的。

一般选用Screen Match Mode模式的Expand,设置好Reference Resolution,打包后UI会按照Reference Resolution进行等比例的放大缩小。

再次感谢以上各位博主。