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; } }