Unity发布ios和Android包,UGUI,异形屏适配

本文介绍了如何在Unity中针对Android手机、平板和iPhone、iPad进行UI适配,特别是针对UGUI的Canvas设置以及刘海屏优化。通过屏幕比例判断设备类型,并提供了缩进调整代码实例,寻求更优适配建议。

Unity,发布ios和Android的包,UGUI,异形屏适配问题。


前言

unity发布移动端需要做ui的适配,我们用的是UGUI,暂且提供一种我们自己的ui适配解决方案,包含异形屏的。


一、区分Android手机,Android平板,Iphone,Ipad

也查到了各种各样的区分方法。
我们是通过长宽比来区分的,下面直接上代码。

#if UNITY_ANDROID

        //通过屏幕比例判断是否刘海屏
        if ((float)Screen.width / Screen.height > 2)
        {
            isHaveLiuhai = true;
        }
        if ((float)Screen.width / Screen.height < 1.7f)
        {
        //是安卓平板
            isIphone = false;
        }
        else
        {
        //是安卓手机
            isIphone = true;

        }
#endif
#if UNITY_IOS
        
        //通过屏幕比例判断是否刘海屏
        if ((float)Screen.width / Screen.height > 2)
        {
            isHaveLiuhai = true;
        }
        if ((float)Screen.width / Screen.height < 1.5f)
        {
        //是Ipad
            isIphone = false;
        }
        else
        {
        //是Iphone
            isIphone = true;

        }
#endif

二、UGUI的适配

1.Canvas设置

这是canvas的相关设置

canvas相关设置

2.相应的ui缩进,来适应异形屏

设置ui缩进的代码如下(示例):

  //设置节点的位置
    public void SetAdapta(Transform target, float x)
    {
#if UNITY_IPHONE
        if (isHaveLiuhai)
        {
            RectTransform rect = target.GetComponent<RectTransform>();
            Vector2 anPos = rect.anchoredPosition;
            anPos.x += x;
            rect.anchoredPosition = anPos;
        }
#endif
#if UNITY_ANDROID
        if (isHaveLiuhai)
        {
            RectTransform rect = target.GetComponent<RectTransform>();
            Vector2 anPos = rect.anchoredPosition;
            anPos.x += x;
            rect.anchoredPosition = anPos;
        }
#endif
    }

这是调用的代码

IPhoneAdapta.Instance.SetAdapta(scanButton.transform, -144);

表示右侧的ui向左缩进144,左侧ui向右缩进的话,把负值变为正值即可。


总结

如果有更好的解决方案的大佬,还请多多指点。

就先讲到这里吧,好记性不如烂笔头,如果有问题可以随时联系我。
欢迎大佬多多来给萌新指正,欢迎大家来共同探讨。
如果各位看官觉得文章有点点帮助,跪求各位给点个“一键三连”,谢啦~

声明一下:本博文章若非特殊注明皆为原创原文链接
https://blog.youkuaiyun.com/Wrinkle2017/article/details/117281879
————————————————————————————————

版权声明

版权声明:本博客为非营利性个人原创
所刊登的所有作品的著作权均为本人所拥有
本人保留所有法定权利,违者必究!
对于需要复制、转载、链接和传播博客文章或内容的
请及时和本博主进行联系
对于经本博主明确授权和许可使用文章及内容的
使用时请注明文章或内容出处并注明网址
转载请附上原文出处链接及本声明

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值