iphonex适配游戏_Unity+iPhoneX适配方案[通俗易懂]

作者:范世青王天宇17年下半年,苹果传出新一代iPhone的消息——iPhoneX。随之而来的还有他不同于以往任意一代iPhone的刘海设计。一时间,iPhoneX的适配问题迅速在产品圈流传开。而作为一个线上手游的客户端工程师,我在和团队共同历经了为iPhoneX适配的艰难岁月后,终于在产品上市之日,获得了商店首批适配推荐。那么iPhoneX适配到底有什么需要注意的点,又应该采取什么方案呢?&…

大家好,又见面了,我是你们的朋友全栈君。

作者:范世青 王天宇

17年下半年,苹果传出新一代iPhone的消息——iPhoneX。随之而来的还有他不同于以往任意一代iPhone的刘海设计。

一时间,iPhoneX的适配问题迅速在产品圈流传开。

而作为一个线上手游的客户端工程师,我在和团队共同历经了为iPhoneX适配的艰难岁月后,终于在产品上市之日,获得了商店首批适配推荐。

那么iPhoneX适配到底有什么需要注意的点,又应该采取什么方案呢?iphonex适配游戏_Unity+iPhoneX适配方案[通俗易懂]

>>iPhoneX的界面设计变化

1.状态栏高度的变化

iOS11之前状态栏默认高度为64pt,iOS11之后iPhoneX上由于刘海的出现statusBar由以前的20pt变成了44pt,所以iPhoneX上高度变为88pt

2.圆角和刘海

iPhoneX使用了之前从来没有使用过的圆角屏幕和存放各种传感器的刘海。

这表示放在角落的内容极有可能被裁剪而造成显示不全,从而影响查看和体验。iphonex适配游戏_Unity+iPhoneX适配方案[通俗易懂]

3.Home键变为Home指示条

物理Home键消失,而用一个屏幕底部的“Home指示条”代替,通过从底端上划手势实现返回桌面和切换程序功能。

需要注意的是,除了特定条件下,“Home指示条”将永远在屏幕底部(无论竖屏横屏旋转)

Home指示条会随背景自动改变成明暗状态,提供黑白两种颜色。iphonex适配游戏_Unity+iPhoneX适配方案[通俗易懂]

>>苹果给出的适配建议

1.安全区

苹果官方引入了安全区的概念,建议所有的可交互UI都放在安全区内,防止出现UI不可交互的境况。

但是,安全区只是一个参考,具体的情况还要看app的自身需求,综合考虑这些限制因素。得出自己想要的适配方案。iphonex适配游戏_Unity+iPhoneX适配方案[通俗易懂]

2.以用户体验为核心

在横屏状态下,不能因为刘海的原因将内容向左或者向右偏移,要保证内容的中心对称。这意味着,要进行如下图所示的适配方案设计:iphonex适配游戏_Unity+iPhoneX适配方案[通俗易懂]iphonex适配游戏_Unity+iPhoneX适配方案[通俗易懂]

因为,用户在横屏旋转手机的时候,app的内容如果也设置了相应的旋转,会造成同一个UI用户进行交互的位置会不一样,这有悖于人体肌肉的位置记忆功能。

总而言之,就是一切都要以用户的体验为核心。

>>iPhoneX相关尺寸说明

网上流传的尺寸说明由于单位和放大比不同,都不能很直观地适用于游戏UI。

这里整理了一下网上的几种说法,最终得出了我们实际需要的尺寸图。

首先,iPhoneX的分辨率是1125X2436,注意这是@3x下的像素分享率。iphonex适配游戏_Unity+iPhoneX适配方案[通俗易懂]

然后,我们来明确一下安全区的尺寸,刘海区的非安全区域高度占88 px,@2x(即132 px,@3x)。

由于横版游戏左右对称,可得出左右两侧的非安全区均为132px,@3x。iphonex适配游戏_Unity+iPhoneX适配方案[通俗易懂]

最终,我们可以得出横版游戏的安全区宽度为2172 px,@3x。

同时,下图还标注了Home指示区相关的一些尺寸提供给美术做设计参考。iphonex适配游戏_Unity+iPhoneX适配方案[通俗易懂]

>>横版游戏适配的注意事项

1.交互控件需要防止在安全区内。

2.Home指示条区域避免放置按钮、文字等UI元素,避免有从底部向上滑动的手势设计。

>>适配方案一:利用object-c对屏幕的显示范围进行限制

在进行极无双的iPhone X适配时,我首先想到的方案是,在xcode上,利用object-c对屏幕的显示范围进行限制,让游戏内容适配到官方的安全区范围内,四周加上背景。

很明显,这样的效果不尽如人意,最终被放弃了。

示意图如下所示:iphonex适配游戏_Unity+iPhoneX适配方案[通俗易懂]

>>适配方案二:修改Camera的size

1.判断设备是否是iPhoneX

根据Unity提供的SystemInfo.deviceModel得到的设备名称来判断

设备名称包含了iPhone10,3或者iPhone10,6时,为iPhoneX。

为了在编辑器下能模拟iPhone X设备环境,简单的用了屏幕分辨率来判断

2.修改UICamera的size

2436/2172≈1.121,因此修改UICamera的size为1.121,使摄像机可以拍全整个宽度范围内的UI。

需要注意的是,对于有左右锚点的UI元素,此时也会适配到屏幕边缘(刘海区),对此有两个解决方案:

(1)去掉左右锚点的设置,UI整体等宽适配;

(2)对这些控件判断,如果是iPhoneX特殊处理;

3.补全非安全区的背景填充

在正常的UI之外,补充一些UI元素,使摄像机放大后,左右两侧有正常的背景填充。

注意,这些内容是只有在iPhoneX上才能被看到。

示意图如下所示:iphonex适配游戏_Unity+iPhoneX适配方案[通俗易懂]iphonex适配游戏_Unity+iPhoneX适配方案[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126367.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 直插式电阻电容封装与尺寸图…[通俗易懂]

    原文地址:直插式电阻电容封装与尺寸图解作者:北极光直插式无源器件体积普遍要比贴片式要大一些,而且直插式器件在制作PCB时需要打孔,焊接工艺跟贴片式也有差别,较为麻烦,相对而言,直插式电阻电容多是面向大功率电路应用。一、直插式电阻封装及尺寸直插式电阻封装为AXIAL-xx形式(比如AXIAL-0.3、AXIAL-0.4),后面的xx代表焊盘中心间距为xx英寸,这一点在网上很多文章都没说清楚

    2022年4月12日
  • oracle数据库备份:

    oracle数据库备份:oracle数据库备份

    2022年7月12日
  • pycharm安装教程CSDN_java遇到解决不了的问题

    pycharm安装教程CSDN_java遇到解决不了的问题第三周开始接触python了,结果第一步装pycharm时就遇到了坑,正常安装完成后点运行时出现错误——NoJVMinstallationfound。助教说这是缺少jdk(java程序支持包),需要在网上找个最新的安装并配置下path路径。唉,编程小白,完全不知道这都是些啥o(╥﹏╥)o,于是开始了百度解决问题之路……运行pycharm错误——NoJVMinstallationfoun…

    2022年8月26日
  • Windows小工具 tcping

    Windows小工具 tcpingWindows小工具tcping一、ping和tcping的区别1指代不同1、ping:是Windows、Unix和Linux系统下的一个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。通过ICMP协议发送报文到对方主机上任意一个60000以上的端口,然后获取对方主机的回复2、tcping:是一种面向连百接的、可靠的、基于字节流的传输层通信协议。使用tcp协议尝试与某一个端口建立连接,然后获取与对方主机建立一次连接的回复2功能不同1、ping:利用“ping”命令可以检查网

    2022年6月23日
  • 电容作用分类_电容的分类与识别

    电容作用分类_电容的分类与识别电容分类的N种详解,有图有“真相”电子发烧友网今天一、瓷介电容器(CC)1.结构用陶瓷材料作介质,在陶瓷表面涂覆一层金属(银)薄膜,再经高温烧结后作为电极而成。瓷介电容器又分1类电介质(NPO、CCG));2类电介质(X7R、2X1)和3类电介质(Y5V、2F4)瓷介电容器。2.特点1、类瓷介电容器具有温度系数小、稳定性高、损耗低、耐…

    2022年8月22日
  • python标识符命名规则和要求_python必背入门代码

    python标识符命名规则和要求_python必背入门代码python标识符命名规则什么是标识符标识符:现阶段学习的变量名,后期会学习的函数名,类名这些都是标识符.简单来说就是程序中所有的名字的总称就是标识符.标识符的名字是不能乱起的,就像手机号不能用110是一个道理标识符命名规则有如下4个要求:1.见名知意:看到变量的名字就能知道这个变量干什么的2.由字母、下划线和数字组成,且数字不能开头3.区分大小写4.不能和关键字重复什么是关键字关键字是python语言已经使用的标识符,所以不允许开发者自己定义和关键字相同的名字的标识符.

    2022年9月9日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号