作者:范世青 王天宇

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

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

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

那么iPhoneX适配到底有什么需要注意的点,又应该采取什么方案呢?

>>iPhoneX的界面设计变化

1.状态栏高度的变化

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

2.圆角和刘海

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

这表示放在角落的内容极有可能被裁剪而造成显示不全,从而影响查看和体验。

3.Home键变为Home指示条

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

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

Home指示条会随背景自动改变成明暗状态,提供黑白两种颜色。

>>苹果给出的适配建议

1.安全区

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

但是,安全区只是一个参考,具体的情况还要看app的自身需求,综合考虑这些限制因素。得出自己想要的适配方案。

2.以用户体验为核心

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

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

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

>>iPhoneX相关尺寸说明

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

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

首先,iPhoneX的分辨率是1125X2436,注意这是@3x下的像素分享率。

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

由于横版游戏左右对称,可得出左右两侧的非安全区均为132px,@3x。

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

同时,下图还标注了Home指示区相关的一些尺寸提供给美术做设计参考。

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

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

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

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

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

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

示意图如下所示:

>>适配方案二:修改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适配方案相关推荐

  1. iphonex适配游戏_Cocos Creator 适配怎么做?

    背景和原理 因为手机设备的尺寸不一,分辨率也不一样,这给游戏开发适配带来了一点工作量.为了保证多端基本一致的视觉体验,在开发游戏的时候需要做游戏的适配. 在游戏开发前,需要了解的一个概念是游戏的&qu ...

  2. iphonex适配游戏_王者荣耀iphoneX适配版本问题大全 iphoneX玩王者荣耀常见问题

    iphoneX玩王者荣耀的适配问题已经得到官方的解决,不过也有玩家发现了除了黑框以外的其他问题,比如说两侧有黑边,两侧模糊看不清楚等.其实官方在最新版本的补丁中已经做了相关说明,一起来看看具体的问题解 ...

  3. iPhoneX(刘海屏)适配

    iPhoneX(刘海屏)适配 在 iOS11的时候,苹果破天荒发布了一款新屏幕样式的手机,俗称刘海屏.世人皆道丑,而后纷纷买之.自此,iOS 开发者们也走向了 iPhoneX系列的适配之旅. 区别 状 ...

  4. Unity中2D游戏多分辨率屏幕适配方案

    一:什么是像素? 像素是由很多个小方格组成,每一个小方格上都存储了位置信息和色彩信息.像素是图像的最小单位 图像分为两类:位图和矢量图 --位图(点阵图):由多个像素组成,当放大时被分为多个色块,而且 ...

  5. css iohone手机端适配,【css】适配iphoneX

    Web App适配iPhoneX 前言 Iphone每次退出新尺寸的手机都会掀起一番适配风波,这次没有下巴但有刘海的iPhoneX更是如此,网传横屏下的适配动画更是令不少人汗颜. 其实对于Native ...

  6. 【原】android【手机】屏幕适配解决方案,完美适配适配hdpi,xhdpi,xxhdpi的做法。...

    1.先说要怎么做,后面在慢慢讲解: 2.现在来讲解为什么要放这三套: 这三套其实按内容来说就两种,为什么这两种可以适配hdpi,xhdpi,xxhdpi呢? 那么两种类型的dimens就可以了,为什么 ...

  7. 【Android 屏幕适配】异形屏适配 ② ( 需要异形屏适配情况 | 需要异形屏适配的 Android 系统版本 | 刘海屏状态判定 | 异形屏适配调试 - 华为云调试 )

    文章目录 一.需要异形屏适配情况 1.需要异形屏适配的 Android 系统版本 8.0 2.正常有状态栏的界面竖屏不需要适配 3.正常有状态栏的界面横屏需要适配 4.刘海屏状态判定 二.异形屏适配调 ...

  8. android 屏幕适配框架,Android屏幕适配

    为什么要进行Android屏幕适配 由于Android系统的开放性,任何用户.开发者.OEM厂商.运营商都可以对Android进行定制,于是导致: 1.Android系统碎片化:小米定制的MIUI.魅 ...

  9. ios之开发屏幕适配和系统版本适配(转载)

    系统需要适配有以下几个点: 1.(StatusBar)StatusBarHeight 的高度 ios7以后 StatusBar是悬浮在屏幕上方的 所以ios7之后控件布局需要加上20 而在ios7之前 ...

  10. unity屏幕适配以及坐标点适配

    好久没更新了,最近忙着实习和毕设,虽然还没忙完但是也来更新一些在工作中学到的一些知识吧.今天记录一下如何设计屏幕适配和坐标点适配的功能. 首先我们需要确认自己的原图和背景的长宽比例,然后获取屏幕的长宽 ...

最新文章

  1. golang import后带“_”下划线的意义
  2. centos安装nginx步骤
  3. C++ 11 新特性(十四)C++类
  4. [C/C++]关于C++11中的std::move和std::forward
  5. C#不区分大小写的字符串替换(Replace)函数
  6. Embedding技术在推荐系统中的应用
  7. 《Effective C++》 读书笔记之三 资源管理
  8. 2021“数维杯”国际大学生数学建模竞赛D题思路
  9. error: two or more data types in declaration specifiers原因及解决方法
  10. matlab窄带高斯随机信号,06实验六:窄带随机信号仿真与分析
  11. 基于c51的节日彩灯控制器的设计
  12. 按头安利!精品又实用的unity3D游戏素材看这里!
  13. 完整的连接器设计手册_连接器退化机理是什么?(一)
  14. 【课程设计-毕业设计】机械设计课程设计选题-含设计说明书
  15. idea 光标 快捷键_idea 快捷键汇总
  16. 机器学习-准确率、灵敏度、特异度、PPV、NPV、F1计算方法
  17. XIII Open Cup named after E.V. Pankratiev. GP of Saratov
  18. jenkins插件下载缓慢
  19. vue2.x进阶知识点总结
  20. “蔚来杯“2022牛客暑期多校训练营1 J Serval and Essay(启发式合并)

热门文章

  1. 数据结构--括号匹配检验(数据结构习题)
  2. 燃烧远征怀旧服务器人数小程序,魔兽怀旧服一直更新下去,最终会开到哪个版本?...
  3. 【读论文0628】Does Learning Require Memorization? A Short Tale about a Long Tail∗
  4. 数据库系统---数据挖掘
  5. 如何模拟自动鼠标点击或记录鼠标和回放
  6. level2行情接口十档行情快照如何去运用?
  7. CTF逆向(Reverse)知识点总结
  8. maven 详情查考 maven实战 许晓斌
  9. 【Tools系列】OneNote 2016 中同步笔记时出现0xE4010640错误
  10. if 条件结构与switch条件选择结构