当前位置: 首页 > news >正文

解决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

http://www.lryc.cn/news/375548.html

相关文章:

  • python-给你比个五彩斑斓的❤️
  • 【Go】使用Go语言实现AES CBC No Padding加密和解密
  • 安装VS Code 提示This User Installer is not meant to be run as an Administrator问题
  • keepalived服务详解与实验 基于centos8
  • vue技巧(十)全局配置使用(打包后可修改配置文件)
  • 计算机网络 —— 运输层(运输层概述)
  • BKP备份寄存器RTC实时时钟
  • 基于协同过滤算法的电影推荐
  • IEEE754、linear11、linear16浮点数应用原理
  • 6、 垃圾回收 浏览器事件循环
  • Java多线程面试重点-2
  • LLaMA Factory多卡微调的实战教程(持续更新)
  • IOUtils的妙用
  • 目标检测——室内服务机器人LifelongSLAM数据集
  • Mysql学习笔记-进阶篇
  • AI写真:ControlNet 之 InstantID
  • 单元测试的思考与实践
  • C# Socket通讯简单Demo
  • 视频融合共享平台LntonCVS视频监控管理平台技术方案详细介绍
  • C#ListView的单元格支持添加基本及自定义任意控件
  • 数据库选型实践:如何避开分库分表痛点 | OceanBase用户实践
  • 3个火火火的AI项目,开源了!
  • 算法 | 子集数排列树满m叉树二分搜索归并排序快速排序
  • SpringBoot配置第三方专业缓存技术jetcache方法缓存方案
  • 游戏开发丨基于PyGame的消消乐小游戏
  • 软件项目管理概述
  • FastAdmin后台开发框架 lang 任意文件读取漏洞复现
  • 数字时代PLM系统的重要性
  • 安卓实现圆形按钮轮廓以及解决无法更改按钮颜色的问题
  • 常用原语介绍