Unity中UGUI的屏幕自适应

随着游戏设备的不断增加,屏幕的分辨率也越来越多,所以针对不同的屏幕分辨率,Unity中也提供了分辨率自适应的机制。

游戏中的分辨率自适应主要做两方面的工作:①、调整画布组件   ②、调整锚点

调整画布组件:

UGUI中Canvas Scaler组件是调整整体缩放的,有三种模式:

Constant Pixel Size:固定像素尺寸,在任何分辨率下都不会进行缩放拉伸,只能通过改变Scale Factor才能进行拉伸(如果需要制作屏幕的分辨率自适应,不推荐使用);

Constant Physical Size:保持物理上不变的方式,无论场景怎样变化,应用场景较少。

Scale With Screen Size:根据屏幕尺寸缩放,应用场景较多,主要应用在分辨率自适应上,下面是对其参数的详细讲解:


Reference Resolution:开发时分辨率,以后的缩放主要参考对象,一般使用主流分辨率如1920x1080、1136x640等;

Screen Match Mode的三种模式:

    ①、Match Width Or Height:他的Match属性是屏幕的宽度和高度对UI大小的影响。

    ②、Expand:缩放不裁剪,当屏幕分辨率和设定不同时,选择变化较小的方向进行缩放。

    ③、Shrink:缩放裁剪,当屏幕分辨率和设定不同时,选择变化较大的方向进行缩放。

我们一般默认选择就好。

调整锚点:

每个UI都有自己的锚点,他们的锚点是由4个三角形表示,并且还有4个基准点(用来控制UI的大小)


这时Button是子控件,Canvas是主控件,当主控件被设置为自动拉伸时,子控件和锚点的距离(不是比例)将会永远保持不变。

经过总结得出锚点的设置规律如下:

①、当锚点四个在一起时,UI不会因为窗口的改变而被压缩变形,但是他可能超出主控件。

②、当锚点四个全部分开时,UI对象会随着父节点的改变而改变。

③、当锚点左右两边分开时,UI对象的高不会随着父节点的改变而改变,宽会随着父节点的改变而改变。

④、当锚点上下两边分开时,UI对象的宽不会随着父节点的改变而改变,高会随着父节点的改变而改变。

当然了,在做自适应屏幕时,根据自己的需要,合理的选择锚点的位置

猜你喜欢

转载自blog.csdn.net/qq_38721111/article/details/80524504