其实这个是前两年就遇到过的问题。
基本上是权限问题引起的。
android10以上手机是需要手动获取一些敏感权限,unity2018以前的版本没有适配,导出的android工程在没有手动获取权限的情况下会黑屏卡住。
那么需要哪些权限呢? 那就是【READ_PHONE_STATE】 ,在androidmanifest里添加这个权限后还需要在启动unity的acitivity前手动获取到这个权限,这样android10以上才不会黑屏。
为什么unity需要这个权限呢?
这里,静止其他应用播放声音。简单点说就是,如果没有勾选,则需要这个权限,勾选了就不需要。
国内现在因为隐私合规的问题,很多平台不允许启动前获取read phone state这个敏感权限,所以勾选这里能跳过这个权限问题。文章来源:https://www.toymoban.com/news/detail-512980.html
还有一种解决方式,那就是重写他jar包里 UnityPlayer类中addPhoneCallListener 这个方法文章来源地址https://www.toymoban.com/news/detail-512980.html
public class YUnityPlayer extends UnityPlayer {
public YUnityPlayer(Context context) {
super(context);
}
@Override
public void addPhoneCallListener(){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
return;
}
super.addPhoneCallListener();
}
}
然后将 UnityPlayerActivity 中 mUnityPlayer类型改为 YUnityPlayer 即可。
到了这里,关于Unity 导出android后android12以上黑屏问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!