Unity3d 用ARFoundation开发安卓AR应用黑屏闪退问题

前言

AR Foundation允许你在Unity内以多平台方式作增强现实平台。该插件为Unity开发者提供了一个界面,但本身并未实现任何增强现实功能。要在目标设备上使用AR Foundation,还需要为Unity 官方支持的目标平台单独提供软件包,如要开发安卓AR功能需要ARCore XR插件,而苹果系统则需要ARKit XR插件。它的核心价值在于,开发者只需编写一套代码,即可部署到多个主流移动平台。它的核心功能有图像识别追踪、人脸识别追踪、3D物体识别追踪等。它可以使我们快速的构建跨平台的AR应用,我快速导入识别图,绑定识别效果,以为如此快速的方式即实现了功能,但是真正打包、运行使用起来发现坑点很多。

问题

黑屏:应用安装后能够正常打开,但进入 AR 场景后,屏幕一片漆黑,没有摄像头画面。

闪退:启动应用、点击进入AR功能、点击几次按钮应用闪退。

原因

起初我以为是我的设置问题,因为我并未编写一行代码,跟着很多教程操作了多遍依然有如上问题,所以,我索性拉取了官方提供的案例工程(ARFoundation Samples),打包尝试后依然是同样的问题。 最后翻遍了AR Foundation的文档和AR Core文档,终于在AR Core的说明文档里找到了支持的设备(中国) ,是我的手机不在ARCore支持在中国地区销售设备列表内。果然,我尝试换了一部手机功能正常了。

支持机型见文末

最新可以进入查询:

https://google-developers.gonglchuangl.net/ar/devices?hl=zh-cn#android_china

ARCore的限制

AR Foundation极大简化了跨平台AR应用的开发流程,方便快捷完成AR应用的开发,但是这也难掩ARCore的对底层平台的限制(尤其是安卓的碎片化和国内环境)。

1设备受限

ARCore指定了他们的认证流程,只有通过认证的设备才会受ARCore支持,而其他设备将无法正常体验AR功能。

2 "谷歌服务"依赖

在海外,ARCore 作为 Google Play Services 的一部分进行推送。在国内,这需要单独、再次安装Google Play Services 。

3 功能支持差异

即使在同一品牌的不同型号上,对 Depth API、Environment Probes 等高级功能的支持也参差不齐。若在代码中强行调用不支持的 API,极易导致不稳定或崩溃。

4系统版本

不同手机厂商对 Android 系统的定制,可能导致 ARCore 服务在某些 ROM 上行为异常,增加了出现黑屏、闪退等未知问题的几率。

结语

开发AR应用,尤其是面向碎片化严重的安卓生态,需要做好硬件、系统和平台限制的对比研究与评估。AR Foundation提供了强大的武器,但其底层依赖(ARCore)的局限性,对于AR Foundation的选用还需要深思熟虑。从机型支持、功能支持与谷歌服务依赖等几个问题需要开发者与决策者有预期的心理落差。

相关推荐
2501_944525545 小时前
Flutter for OpenHarmony 个人理财管理App实战 - 预算详情页面
android·开发语言·前端·javascript·flutter·ecmascript
清蒸鳜鱼6 小时前
【Mobile Agent——Droidrun】MacOS+Android配置、使用指南
android·macos·mobileagent
2501_915918416 小时前
HTTPS 代理失效,启用双向认证(mTLS)的 iOS 应用网络怎么抓包调试
android·网络·ios·小程序·https·uni-app·iphone
峥嵘life7 小时前
Android EDLA CTS、GTS等各项测试命令汇总
android·学习·elasticsearch
Cobboo7 小时前
i单词上架鸿蒙应用市场之路:一次从 Android 到 HarmonyOS 的完整实战
android·华为·harmonyos
天下·第二7 小时前
达梦数据库适配
android·数据库·adb
定偶7 小时前
MySQL知识点
android·数据结构·数据库·mysql
iwanghang7 小时前
Android Studio 2023.2.1 新建项目 不能选择Java 解决方法
android·ide·android studio
似霰7 小时前
JNI 编程指南10——从内存角度看引用类型
android·jni
南墙上的石头7 小时前
Android端 人工智能模型平台开发实战:模型服务部署与运维平台
android·运维