Unity3d + UGUI 的多分辨率适配

时间:2022-09-22 03:34:32

原文地址:http://blog.csdn.net/dingkun520wy/article/details/49471789

1、Canvas的属性配置

Unity3d + UGUI 的多分辨率适配Unity3d + UGUI 的多分辨率适配

2、Canvas Scaler的属性配置

Unity3d + UGUI 的多分辨率适配Unity3d + UGUI 的多分辨率适配

3、根据不同的屏幕的比例动态修改缩放基准

void Start ()
{
float standard_width = 960f; //初始宽度
float standard_height = 640f; //初始高度
float device_width = 0f; //当前设备宽度
float device_height = 0f; //当前设备高度
float adjustor = 0f; //屏幕矫正比例
//获取设备宽高
device_width = Screen.width;
device_height = Screen.height;
//计算宽高比例
float standard_aspect = standard_width / standard_height;
float device_aspect = device_width / device_height;
//计算矫正比例
if (device_aspect < standard_aspect)
{
adjustor = standard_aspect / device_aspect;
} CanvasScaler canvasScalerTemp = transform.GetComponent<CanvasScaler>();
if (adjustor == 0)
{
canvasScalerTemp.matchWidthOrHeight = 1;
}
else
{
canvasScalerTemp.matchWidthOrHeight = 0;
}
}

将脚本挂在画布控件上。

效果

Unity3d + UGUI 的多分辨率适配Unity3d + UGUI 的多分辨率适配

Unity3d + UGUI 的多分辨率适配

Unity3d + UGUI 的多分辨率适配