随着游戏设备的不断增加,屏幕的分辨率也越来越多,所以针对不同的屏幕分辨率,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对象的宽不会随着父节点的改变而改变,高会随着父节点的改变而改变。
当然了,在做自适应屏幕时,根据自己的需要,合理的选择锚点的位置