Unity可以通过UnityEngine.Screen.safeArea获取安全区域的起始位置坐标及安全区域宽高,如果安全区域宽或高不等于屏幕的宽或高(通过unity.Screen对象获取)则表示存在刘海区域,此时可以通过宽高差异计算出刘海区域的大小。例如屏幕宽1080、高2340,安全区域为(x:0.00, y:85.00, width:1080.00, height:2255.00)则刘海区域在顶部且高度为85。如果x及y都为0且宽高与屏幕高宽相等且表示不是刘海屏,如果y>0表示顶部有刘海,如果y>0且屏幕高-y-安全区域高>0表示底部及顶部都有刘海,如果y=0且屏幕高>安全区域高则表示仅底部有刘海。
在刘海屏上背景应该铺满但是内容不超出安全区域,对于按照必须在设置里面启动允许超出安全区域(FileàBuilding SettingàPlayer SettingsàResolution and PresentationàRender outside sage area,勾选该项),否则背景无法铺满全屏,会出现顶部黑边的情况。如果是导出安卓gradle项目也可以直接在AndroidManifest.xml文件中添加设置项,在MainActivity的Activity标签内添加:
<meta-data android:name="android.notch_support" android