Unity 一分钟学会适配IOS刘海屏

IOS刘海屏适配

项目上线了总免不了适配问题,Unity UGUI的锚点针对于Andorid平台的适配还是很不错的,只需调整Match为1 即可让渲染的画面处于屏幕的安全位置之内,
但到了苹果平台上往往会出现 侧边栏按钮被刘海遮住的问题,因此 要解决这一问题,网上有很多方式,这里博主就不一一描述了,感兴趣的可以自行百度。
但是博主这里提供一种只使用C# + UGUI就可实现的,简单,高效,快速的 针对于IOS的适配方案,该方案已通过测试,并在线上运行良好。

注:该方案支持热更适配,哪怕是上线项目也可以及时开启适配及调整适配程度。

原理:

通过获取设备型号及计算屏幕分辨率,在根据是否刘海屏调整侧边按钮的 Anchored Position 偏移量,从而避过刘海遮挡。

实现:

代码如下:

 using UnityEngine;
    public class IPhoneAdapta
    {
        public static bool isHaveLiuhai = false;
        public static void Init()
        {
#if UNITY_IPHONE
  		 //通过设备型号判断是否刘海屏
         if (SystemInfo.deviceModel.Contains("iPhone10,3") || SystemInfo.deviceModel.Contains("iPhone10,6"))
        {
            
            isHaveLiuhai = true;
            return;
        }
        //通过屏幕比例判断是否刘海屏
        if ((float)Screen.width / Screen.height > 2)
        {
            isHaveLiuhai = true;
        }
#endif
        }
        //设置节点的位置
        public static void SetAdapta(Transform target, float x = 44, float y = 0)
        {
            #if UNITY_IPHONE
            if (isHaveLiuhai)
            {
                Debug.Log("IPhone Adapta>>>");
                RectTransform rect = target.GetComponent<RectTransform>();
                Vector2 anPos = rect.anchoredPosition;
                anPos.x += x;
                anPos.y += y;
                rect.anchoredPosition = anPos;
            }
            #endif
        }

    }

此文章到此结束,就是如此简单。
直接粘贴拷贝代码到工程,在需要适配的地方,调用**SetAdapta()**传入需要适配的物体,及需要适配的偏移量即可,一般来说 默44 就即可满足侧边按钮到达安全位置,具体可根据情况自行调节。

调用完毕后,就可打包测试了!

努力积才能, 壹叶便成名!

喜欢我关注我!

你可能感兴趣的:(工具,IOS适配,IOS刘海屏适配,Unity,刘海屏适配,一分钟学会适配IOS刘海屏,Unity屏幕适配)