Canvas Scaler这个组件用来做适配的。
首先将Canvas Scaler属性设置为上图所示。
Reference Resolution表示我们设计界面的时候使用的分辨率大小。
Screen match Mode有三种选择,即三种界面适配方案。
Shrink 保持缩放比例,裁切
Expand 缩放不裁切
Match Width Screen Size
如果是Match Width 那么就是适配宽度,把宽度设置为屏幕宽度,然后保持比例
如果Match height,那么适配高度,首先把高度设置为屏幕高度,然后保持比例
在Canvas上添加下面代码,在游戏开始运行时执行一次,调节Match Width Screen Size,解决屏幕适配问题。
void Start()
{
float standard_width =1134f; //初始宽度
float standard_height = 750f; //初始高度
float device_width = 0f; //当前设备宽度
float device_height = 0f; //当前设备高度
//获取设备宽高
device_width = Screen.width;
device_height = Screen.height;
//计算宽高比例
float standard_aspect = standard_width / standard_height;
float device_aspect = device_width / device_height;
CanvasScaler canvasScalerTemp = transform.GetComponent<CanvasScaler>();
if (device_aspect > standard_aspect)
{
canvasScalerTemp.matchWidthOrHeight = 1;
}
else
{
canvasScalerTemp.matchWidthOrHeight = 0;
}
}