做游戏的都很厌恶刘海屏,特别是iphone,因为如果你不去适配iphoneX之后的手机,那么手机刘海的位置将会是黑的,这样你就拿不到苹果的推荐,而且IphoneX和安卓手机的刘海屏还有一个不同,就是IphoneX屏幕底部还有一条线,这样我们的UI就不能在这条线之下,否则会无法响应,所以我们需要调整我们的UI界面。
1,刘海屏比例介绍:
在苹果的开发者网站上可以看到IphoneX的相关信息,这是我找到关于iphoneX的日文适配方案,附上链接https://developer.apple.com/jp/documentation/HiG-iPhoneX.pdf可以看到iphoneX相关信息,这里我大概介绍下,就是Iphonex存在一个安全区的概念,这个安全区的比例是2172*1062的比例,而完整的像素比例是2436*1125
我们必须让UI整体在安全区内,但是我们又必须把周围多余的像素填满。所以最开始我想到的方法是去改变所有UI的背景图,通过拉伸背景图达到就是用背景填满周围的非安全区,但是这样我们需要调整所有的UI,这是个很麻烦的工作。
2,我的做法
最后我放弃上面那种常规的做法,而是去改变相机的viewport,缩小相机的视野,这样UI就会在安全区里了,那么周围的非安全怎么办?我是用另外的一个相机,这个相机是在UI层之上,而这个相机的viewport不变就是完整像素比例,这样这个相机拍摄的东西都会按照完整像素比例,这时候我们就需要美术帮我们做两个“耳朵”就是下图的红色区域,因为我们是竖屏游戏,所以美术给的耳朵正好可以用在最下面用来填充横线,如下图红色区域,这样就直接不需要去调整每个UI了,直接叫美术弄一个装饰就行了,而Iphonexr,IphoneX max都与iphoneX的比例一致。

3,代码很简单这里我就随便写下
camera.rect= Rect( 0, 132/2436,1, 1062/1125)
就一句话就完成了,简单吧
ref:
https://blog.uwa4d.com/archives/USparkle_UGUI-NGUI.html
https://developer.apple.com/jp/documentation/HiG-iPhoneX.pdf