Android/Unity混合开发屏幕旋转问题以及8.0透明页面兼容

998 阅读3分钟

这是我参与8月更文挑战的第10天,活动详情查看:8月更文挑战

👉关于作者

众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)

👉即将学会

Android嵌套Unity后,屏幕旋转出现的页面问题。

👉背景

🙈小空(⌚):小芝,你看过韩剧继承者们吗?这两天我在看。

🙎小芝(💗):看过,看过,超级好看的。那时候边看边哭呢。

🙈小空:好,不说这个,我们解决下Android嵌套Unity的问题。

🙎小芝:......,你有病吧,你不聊你说什么,活该单身去吧!

👉实践过程

前段时间做个项目是 Android 集成Unity的,混合开发。测试没问题,发布出去了。 

但是突然收到消息说崩溃了。没办法,看呗。然后查看平板设备,发现是8.0系统问题 

它不让透明的页面申请屏幕变换。即setRequestedOrientation(......)

这个请求我写在了BaseActivity里,没办法只能去掉了,然后我将除透明activity外的页面在清单页面中写上横屏

android:screenOrientation="landscape"

然后运行,嗯?没成功?然后我单独起个demo来看看,这不没问题吗。坑我。 

我停止下来,仔细想了想,发现问题所在是Unity的问题导致。试验把unity效果注释掉,确实正确了。 

附:我的项目是Unity导出android项目,然后放到Android Studio中编译成aar,放到自己的android项目中。

 我就去Unity中修改了导出横竖屏设置。(unity/android都是自己开发,所以清门熟路) 

这个屏幕方向有几个选择

  • Portrait:竖屏 
  • Portrait Upside Down:竖屏,手机倒过来 
  • Landscape Right:横屏,屏幕在home键右边 
  • Landscape Left:横屏,屏幕在home键左边(比较常用,我选择的也是这个) 
  • Auto Rotation:自动旋转屏幕 
  • Auto Rotation有额外选项,可以只勾选某些方向,根据个人需求来指定旋转方向。 

然后重新编译了一次,运行没问题,有3D的界面不自动变了。Android 8.0系统也没事了。

回忆一下

  1. 透明Activity取消申请屏幕旋转的代码,对不透明的页面设置。
  2. Unity项目导出的时候设置屏幕方向
  3. 成功

忘记在哪看到的一句话了, 透明Activity的屏幕方向跟随下面那个不透明activity的方向。所以只要保证跳转透明页面的activity的屏幕方向正确即可。

附赠 Android的屏幕方向列表:

欢迎关注@私信我啊,一起开黑学习啊。

👉其他

📢作者:小空和小芝中的小空
📢转载说明:务必注明来源:芝麻粒儿 的个人主页 (juejin.cn)
📢欢迎点赞👍收藏🌟留言📝