解决Unity-2020 安卓异形屏黑边

背景

Unity 2020.3.17 版本开发的游戏,打apk包,发现两个问题

  1. 如图下午所示,实体白色导航栏,阻挡了整个安卓UI界面,难看还影响美观。

安卓导航栏截图.png

  1. 安卓系统 12-13 版本手机,异形屏。一侧安全区黑边遮挡,占空间还不美观。

安卓异形屏黑边截图.png

尝试方案

仅做记录,不感兴趣的,可以直接跳解决方案。

增加如下代码,在cocos2d 系列游戏, 黑边问题(隐藏导航栏)基本能完美解决。但是在unity游戏,尝试修改很多安卓层代码和清单文件配置,黑边问题并不奏效。最终翻阅unity开发文档,尝试了一下。问题得以解决。

  • 处理异形屏黑边问题

      if (Build.VERSION.SDK_INT >= 28) {
           getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            WindowManager.LayoutParams lp = getWindow().getAttributes();
            lp.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
            getWindow().setAttributes(lp);
        }
  • 隐藏和现实导航栏或者状态栏
// 隐藏系统UI(状态栏和导航栏)  
public void hideSystemUI() {  
    // 启用沉浸模式  
    // 注意:这些标志在Android不同版本中的效果可能有所不同  
    // FLAG_FULLSCREEN 用于隐藏状态栏  
    // FLAG_HIDE_NAVIGATION 用于隐藏导航栏  
    // FLAG_IMMERSIVE_STICKY 或 FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS 用于改进显示效果  
    View decorView = getWindow().getDecorView();  
    int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN  
            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION  
            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;  
    decorView.setSystemUiVisibility(uiOptions);  
}  
  
// 显示系统UI(用于用户交互时恢复系统UI)  
public void showSystemUI() {  
    View decorView = getWindow().getDecorView();  
    int uiOptions = View.SYSTEM_UI_FLAG_VISIBLE;  
    decorView.setSystemUiVisibility(uiOptions);  
}  

解决方案

  • Hide Navigation Bar : 启用该选项,用于处理安卓生命周期显示(隐藏)导航栏

  • Render outside safe area : 启用该选项可允许使用所有可用的屏幕空间(包括显示屏缺口(凹口)区域)进行渲染

unity解决方案.png

相关推荐

  1. rk3568 11双显,隐藏副的导航栏

    2024-06-15 19:38:02       33 阅读
  2. Android去除折叠两边的,默认全显示

    2024-06-15 19:38:02       31 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-15 19:38:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-15 19:38:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-15 19:38:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-15 19:38:02       20 阅读

热门阅读

  1. 用Unity创造自己的绿洲

    2024-06-15 19:38:02       7 阅读
  2. Cargo 教程

    2024-06-15 19:38:02       7 阅读
  3. 第壹章第14节 C#和TS语言对比-委托事件(仅C#)

    2024-06-15 19:38:02       6 阅读
  4. React小记(二)_组件通信、生命周期、hooks等

    2024-06-15 19:38:02       9 阅读
  5. 几句话理解Kubetnetes中的Service资源的几种类型

    2024-06-15 19:38:02       7 阅读
  6. 计算机类期刊含金量横纵向对比(一)

    2024-06-15 19:38:02       6 阅读
  7. 力扣第202题“快乐数”

    2024-06-15 19:38:02       7 阅读
  8. 利用STM32F103驱动舵机的指南(使用HAL库)

    2024-06-15 19:38:02       8 阅读
  9. web前端defer:深度解析与实用指南

    2024-06-15 19:38:02       8 阅读
  10. c语言如何进行文件错误检查

    2024-06-15 19:38:02       7 阅读
  11. C语言从头学18——类型的自动转换

    2024-06-15 19:38:02       9 阅读