Unity基础篇:使UI跟随屏幕分辨率变化自适应。

当我们使用Unity的UGUI设计游戏UI的时候,不得不考虑在不同分辨率机器下UI的缩放以及位置的自适应。今天我们就来讨论一下这个问题。

首先我们来了解一下相机的渲染模式(这个蓝蓝的东西好像可以点唉)和Canvas下的Canvas Scaler

一、Constant Pixel Size:

像素大小始终不变,即一个100*100的图片在任何的分辨率下都占用100*100的像素。简单比较好理解。Scale Factor是表示缩放倍数。比如是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 缩放剪切:当屏幕分辨率与设定不同时,选择变化较大的一个方向(横向还是纵向)进行缩放显示

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

三、Constant Physical Size 

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

*****************************************************************************************************************************************************

首先我们设置好Canvas参数,假设我们开发基准为480x800的分辨率。

Unity基础篇:使UI跟随屏幕分辨率变化自适应。_第1张图片

然后在Canvas下面创建4个Button,并设置锚点分别对应四个角落,对UGUI的RectTransFrom不熟悉的同学可以去看下这位博主的文章。http://www.cocoachina.com/game/20160602/16570.html

Unity基础篇:使UI跟随屏幕分辨率变化自适应。_第2张图片

Unity基础篇:使UI跟随屏幕分辨率变化自适应。_第3张图片

这是480x800的显示效果

Unity基础篇:使UI跟随屏幕分辨率变化自适应。_第4张图片

这是1920x1080的显示效果,大功告成!

Unity基础篇:使UI跟随屏幕分辨率变化自适应。_第5张图片

 

Canvas Scaler适配模式部分摘自https://blog.csdn.net/st75033562/article/details/52355239

 

你可能感兴趣的:(Unity相关)