其实其他UGui也是一样的 (也可以在界面Panel下做一个Widget来做停靠父物体,改Widget大小)

1,首先要知道怎么判断是不是iphoneX平台
通过SystemInfo.deviceModel获取设备型号,获取的值是形如:iPhone8,1这种。这里有个表:
iPhone7,1         iPhone 6 Plus
iPhone7,2         iPhone 6
iPhone8,1         iPhone 6s
iPhone8,2        iPhone 6s Plus
iPhone8,4        iPhone SE

iPhone9,1         国行、日版、港行iPhone 7 (A1660/A1779/A1780)
iPhone9,2        港行、国行iPhone 7 Plus (A1661/A1785/A1786)
iPhone9,3        美版、台版iPhone 7 (A1778)
iPhone9,4        美版、台版iPhone 7 Plus (A1784)

iPhone10,1       国行(A1863)、日行(A1906)iPhone 8
iPhone10,4      美版(Global/A1905)iPhone 8
iPhone10,2      国行(A1864)、日行(A1898)iPhone 8 Plus
iPhone10,5      美版(Global/A1897)iPhone 8 Plus
iPhone10,3  国行(A1865)、日行(A1902)iPhone X
iPhone10,6  美版(Global/A1901)iPhone X

---或者 高版本可以用
var isIphoneX = UnityEngine.iOS.Device.generation;  
if (isIphoneX == UnityEngine.iOS.DeviceGeneration.iPhoneX)  
{  
Debug.log("这个是iphoneX平台")  
}

2.设置 PanelClipping 为SoftClip
3.代码设置 在创建窗口的公共类调用
 /// <summary>
    /// 判断是否为Iphone
    /// </summary>
    /// <returns></returns>
    public static bool GetIsIphoneX()
    {
#if UNITY_IPHONE
        if (SystemInfo.deviceModel.Equals("Iphone10,3") || SystemInfo.deviceModel.Equals("Iphone10,6"))
        {
            Debug.Log("The Device Is IphoneX");
            return true;
        }
#endif
        return false;
    }

/// <summary>
    /// 更改适配IphoneX值
    /// </summary>
    /// <param name="obj"></param>
    public static void SetClippingOffsetValue(GameObject obj,float x, float y)
    {
        UIPanel panel = obj.GetComponent<UIPanel>();
        if (panel && panel.clipping == UIDrawCall.Clipping.SoftClip)
        {
            panel.baseClipRegion = new Vector4(0, 0, x, y);// 这里改的是z,w值
            Debug.LogError("IphoneX 适配成功");
        }
    }
4:针对有背景的全屏界面 在UIRoot下创建一个Texture 在需要改变的界面打开时 隐藏当前的texture
(去一个固定的名字方便隐藏) 打开UIRoot下的texture并赋值,在关闭界面时,关闭uiRoot下的texture

CS.ShowObject(self:FindChild('ToHide'), false);
        local _texture = bg.transform:GetComponent('UITexture').mainTexture;
        if _texture then
            UiMgr:ShowBgTexture(_texture);
        end
5:主面板panel 设置了softclip 后下面的列表会出现刷新问题(刷新不出来)和有的透明ui不能改透明度
在加载完界面后再还原panel到原来的模式 (ui停靠方式用Start)
 local _panel = self._wnd:GetComponent('UIPanel')
 if _panel then
     _panel.clipping = UIDrawCall.Clipping.None
 end

iphoneX 屏幕适配 NGUI相关推荐

  1. iOS开发-iPhoneX的适配-iPhoneX屏幕适配分享

    文章感谢 PingWest品玩,奇点开发者@图拉鼎 iOS 11正式发布,原本bate版就很多坑,现在还没解决就正式发布了~内心也是酸爽的.除了代码上的坑,更恶劣的就是新的iPhone咯,看到iPho ...

  2. cocos2dx游戏之适配iPhoneX屏幕

    最近项目中有关于做iPhoneX屏幕适配问题,关键是这个项目已经做的差不多了,唯独iPhoneX屏幕没有适配,然后这个适配任务就落到我身上了,好了,话不多说,开始记录... 开始搞时在网上也查看了很多 ...

  3. CocosCreator H5小游戏屏幕适配解决方案

    基础概念 1 物理分辨率 物理分辨率简单理解就是硬件所支持的分辨率,以像素(px)为单位,所以我们称这个硬件上的每一个像素点为物理像素,也叫设备像素.将屏幕实际存在的像素以行数 × 列数这样的数学表达 ...

  4. UNITY NGUI IPHONEX完美适配

    苹果的IphoneX新增一个安全区的概念,如下图 图中绿色区域为安全区,所有可交互的组件全部放在安全区内,只有背景可以延伸出去,达到全面屏的效果 我们适配IphoneX采用NGUI通用的锚点去适配.默 ...

  5. Unity中关于IphoneX的屏幕适配

    关于屏幕适配也在网上找了很多的解决方案,我也总结一下,保证自己能在以后翻出来可以不看代码就能想起完整流程. 屏幕适配,就是为了不同的机型不同的屏幕尺寸做对应的处理,接下来开始正式的流程介绍: 1.先定 ...

  6. Unity NGUI屏幕适配

    前段时间整理的一篇关于unity ui开发的文章,被推荐上了csdn首页,对于刚刚写文字的我来说,是莫大的鼓励,让我干劲十足,写出更多有质量的文字. 写在前面 屏幕适配是每个手机应用和游戏都会解决的问 ...

  7. html5苹果x底部满屏,iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配...

    最近写小程序时,遇到了 iPhoneX 底部小黑线与内容重叠的问题,实际上是iPhoneX安全区域的适配问题,了解清楚这个问题花了挺多时间的,也实操出了结果,忍不住来总结总结. 前言 在苹果 iPho ...

  8. iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配

    最近写小程序时,遇到了 iPhoneX 底部小黑线与内容重叠的问题,实际上是iPhoneX安全区域的适配问题,了解清楚这个问题花了挺多时间的,也实操出了结果,忍不住来总结总结. 本文目录 前言     ...

  9. Unity 之 NGUI UIRoot 的屏幕适配问题

    UIRoot 屏幕适配 文章说明 屏幕适配 UIRoot 1.原理简述 2.举例说明 Constrained 1.原理简述 2.举例说明 源码 思考 文章说明 本篇文章基于NGUI (3.12.0)版 ...

最新文章

  1. 好书推荐:《零基础快速入行入职软件测试工程师》学测试一本就
  2. wxWidgets:wxRibbonPanel类用法
  3. C++如何使用puff()的示例
  4. 3Linux内存映射,mmap()函数
  5. 牛客练习赛71 F 红蓝图(kruskal重构树)
  6. 只能在测试中注射吗?
  7. Linux NTP服务配置 for Oracle RAC
  8. python如何设置窗口保持显示_如何保持Python脚本输出窗口打开?
  9. html label 两端对齐,如果实现表单的label文字两端对齐
  10. Nginx常见错误码解决方案
  11. volist 自增序号 分页如何实现?
  12. PyTorch注意力机制【动手学深度学习v2】
  13. java银行项目_javabank项目
  14. eclipse发生了错误,请参阅日志文件怎么办呀
  15. Python的多线程和多进程教程:大大提高效率
  16. STM32独立按键实现单击双击长按功能
  17. C语言注释风格(函数、功能、输入、输出、返回)
  18. 快递这个行业杀价拼量力竭
  19. Spring循环依赖问题,Spring是如何解决循环依赖的?
  20. “互联网+”大学生创新创业大赛经历

热门文章

  1. 产品设计:基于二维码与打印业务的校园推广方案
  2. [Good for enterprise] GFE我们是怎么监控的?
  3. 消息队列-RabbitMQ的使用
  4. 字长为16位的计算机_字长为16位表示这台计算机最大能计算一个16位的十进制数...
  5. 袋鼠云与沃趣科技达成战略合作,共同驱动企业数字化升级
  6. 【日常】轻松一刻:趣题分享(随机过程)
  7. 太阳能光伏系统新能源环保类企业公司通用官网/蓝色大气产品案例展示
  8. java rector_Java中的Reactor是什么
  9. OSI七层协议模型和TCP/IP四层模型
  10. 看完把学霸按在地上摩擦,计算机网络知识点总结(3)——TCP部分