Unity中UI在不同设备下的自适应

   日期:2020-05-29     浏览:92    评论:0    
核心提示:using UnityEngine;public class UIAdaptation : MonoBehaviour{ [Header(刘海屏遮挡住的UI)] public RectTransform[] ui_bangMask; [Header(需要调整位置与缩放的UI)] public RectTransform[] ui_transAndScale; private void Start() { //调整刘海屏遮挡住的.ui
using UnityEngine;

public class UIAdaptation : MonoBehaviour
{
    [Header("刘海屏遮挡住的UI")]
    public RectTransform[] ui_bangMask;
    [Header("需要调整位置与缩放的UI")]
    public RectTransform[] ui_transAndScale;

    private void Start()
    {
        //调整刘海屏遮挡住的UI
        if (Mathf.Abs((Screen.height * 1.0f / Screen.width) - 2.16f) < 0.01f)
        {
            foreach (var ui in ui_bangMask)
            {
                ui.localPosition -= new Vector3(0, Screen.height * 0.035f, 0);
            }
        }

        //调整因屏幕比例变化出现问题的UI位置与缩放
        foreach (var ui in ui_transAndScale)
        {
            float ratio = GameObject.Find("Canvas").GetComponent<RectTransform>().rect.width / 750f;
            Vector3 rawLocalScale = ui.localScale;
            ui.localScale = ratio * rawLocalScale;
            ui.anchoredPosition = ratio * ui.anchoredPosition;
        }
    }
}

 

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服