天天看點

Unity3d + UGUI 的多分辨率适配

原文位址: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 的多分辨率适配

繼續閱讀