UGUI基础:屏幕适配

屏幕适配只是相对于UI而言的。


image.png

Canvas控制的是UI适配。
相机控制的是场景里的视野大小。

1、Canvas选择一定的分辨率,比如手机横屏通常选择1344*750。
2、UI Scale Mode,UI缩放模式,有三种模式

  • Constant Pixel Size时,UI在任何分辨率下都不会进行缩放拉伸,只有通过改变Scale Factor才会进行缩拉,因此不推荐使用该模式(而这种模式的优点就是你可以通过写自适应算法来改变Scale Factor的值,代替unity的自适应算法)。
  • Scale With Screen Size 使用unity的自适应算法,此时unity会根据屏幕分辨率自动调节Scale Factor的值
  • Constant Physical Size 按照实际物理尺寸显示,这种模式比较少用
    3、Screen Match Mode,UI屏幕适应模式,也有三种模式
  • Match Width Or Height 适应高度或者宽度
    当值为0即处于Width那端时,表示屏幕高度对于UI大小完全没有任何影响,只有宽度会对UI大小产生影响。
    同理当值为1即处于Height那端时,表示屏幕宽度对于UI大小完全没有任何影响,只有高度会对UI大小产生影响。
    通常情况下,横屏游戏选择1,竖屏游戏选择0,正方形屏幕游戏可以选择0.5
  • Expand 伸展模式
    设计了一个button宽高为200*100,即宽高比为2:1,放在4:3的屏幕内;然后把这个button放在16:9的屏幕内,显然地,此时button是不能进行等比例的缩放的,即无法保持2:1的宽高比了,Expand的意思就是尽可能地使UI拉伸来适应屏幕。
  • Shrink 裁切模式
    在尽量适应的情况下,多出屏幕的部分不显示。
    4、在game面板选择与Canvas一样的分辨率,以便更好地查看实际效果。

5、Unity2D多分辨率屏幕适配方案
(1)通常在2D游戏中会选择使用Camera的正交模式,而不是透视模式。orthographicSize属性值来调整摄像机的大小。当摄像机orthographicSize属性值等于当前屏幕高度单位的一半时,摄像机大小正好与屏幕大小相等。注意这里提到的是屏幕单位高度的一半,这个数值是经过像素到单位比即Pixels To Units换算的,Unity2D中这个比例的默认值是100,即100像素等于1单位。如果我们的游戏屏幕有640像素高,那么实际换算成单位高度则是6.4个单位,当我们摄像机的orthographicSize值是3.2时,摄像机大小刚好与屏幕大小相等。
nity编辑器中只能直接调整摄像机的高度,那摄像机的宽度是如何确定的呢?
摄像机实际宽度 = 摄像机orthographicSize * 2 * 屏幕宽高比
https://www.cnblogs.com/flyFreeZn/p/4073655.html

你可能感兴趣的:(UGUI基础:屏幕适配)