iphoneX 屏幕适配 NGUI
其实其他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相关推荐
- iOS开发-iPhoneX的适配-iPhoneX屏幕适配分享
文章感谢 PingWest品玩,奇点开发者@图拉鼎 iOS 11正式发布,原本bate版就很多坑,现在还没解决就正式发布了~内心也是酸爽的.除了代码上的坑,更恶劣的就是新的iPhone咯,看到iPho ...
- cocos2dx游戏之适配iPhoneX屏幕
最近项目中有关于做iPhoneX屏幕适配问题,关键是这个项目已经做的差不多了,唯独iPhoneX屏幕没有适配,然后这个适配任务就落到我身上了,好了,话不多说,开始记录... 开始搞时在网上也查看了很多 ...
- CocosCreator H5小游戏屏幕适配解决方案
基础概念 1 物理分辨率 物理分辨率简单理解就是硬件所支持的分辨率,以像素(px)为单位,所以我们称这个硬件上的每一个像素点为物理像素,也叫设备像素.将屏幕实际存在的像素以行数 × 列数这样的数学表达 ...
- UNITY NGUI IPHONEX完美适配
苹果的IphoneX新增一个安全区的概念,如下图 图中绿色区域为安全区,所有可交互的组件全部放在安全区内,只有背景可以延伸出去,达到全面屏的效果 我们适配IphoneX采用NGUI通用的锚点去适配.默 ...
- Unity中关于IphoneX的屏幕适配
关于屏幕适配也在网上找了很多的解决方案,我也总结一下,保证自己能在以后翻出来可以不看代码就能想起完整流程. 屏幕适配,就是为了不同的机型不同的屏幕尺寸做对应的处理,接下来开始正式的流程介绍: 1.先定 ...
- Unity NGUI屏幕适配
前段时间整理的一篇关于unity ui开发的文章,被推荐上了csdn首页,对于刚刚写文字的我来说,是莫大的鼓励,让我干劲十足,写出更多有质量的文字. 写在前面 屏幕适配是每个手机应用和游戏都会解决的问 ...
- html5苹果x底部满屏,iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配...
最近写小程序时,遇到了 iPhoneX 底部小黑线与内容重叠的问题,实际上是iPhoneX安全区域的适配问题,了解清楚这个问题花了挺多时间的,也实操出了结果,忍不住来总结总结. 前言 在苹果 iPho ...
- iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配
最近写小程序时,遇到了 iPhoneX 底部小黑线与内容重叠的问题,实际上是iPhoneX安全区域的适配问题,了解清楚这个问题花了挺多时间的,也实操出了结果,忍不住来总结总结. 本文目录 前言 ...
- Unity 之 NGUI UIRoot 的屏幕适配问题
UIRoot 屏幕适配 文章说明 屏幕适配 UIRoot 1.原理简述 2.举例说明 Constrained 1.原理简述 2.举例说明 源码 思考 文章说明 本篇文章基于NGUI (3.12.0)版 ...
最新文章
- 好书推荐:《零基础快速入行入职软件测试工程师》学测试一本就
- wxWidgets:wxRibbonPanel类用法
- C++如何使用puff()的示例
- 3Linux内存映射,mmap()函数
- 牛客练习赛71 F 红蓝图(kruskal重构树)
- 只能在测试中注射吗?
- Linux NTP服务配置 for Oracle RAC
- python如何设置窗口保持显示_如何保持Python脚本输出窗口打开?
- html label 两端对齐,如果实现表单的label文字两端对齐
- Nginx常见错误码解决方案
- volist 自增序号 分页如何实现?
- PyTorch注意力机制【动手学深度学习v2】
- java银行项目_javabank项目
- eclipse发生了错误,请参阅日志文件怎么办呀
- Python的多线程和多进程教程:大大提高效率
- STM32独立按键实现单击双击长按功能
- C语言注释风格(函数、功能、输入、输出、返回)
- 快递这个行业杀价拼量力竭
- Spring循环依赖问题,Spring是如何解决循环依赖的?
- “互联网+”大学生创新创业大赛经历
热门文章
- 产品设计:基于二维码与打印业务的校园推广方案
- [Good for enterprise] GFE我们是怎么监控的?
- 消息队列-RabbitMQ的使用
- 字长为16位的计算机_字长为16位表示这台计算机最大能计算一个16位的十进制数...
- 袋鼠云与沃趣科技达成战略合作,共同驱动企业数字化升级
- 【日常】轻松一刻:趣题分享(随机过程)
- 太阳能光伏系统新能源环保类企业公司通用官网/蓝色大气产品案例展示
- java rector_Java中的Reactor是什么
- OSI七层协议模型和TCP/IP四层模型
- 看完把学霸按在地上摩擦,计算机网络知识点总结(3)——TCP部分