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的选用还需要深思熟虑。从机型支持、功能支持与谷歌服务依赖等几个问题需要开发者与决策者有预期的心理落差。

相关推荐
一起搞IT吧20 分钟前
Android功耗系列专题理论之十四:Sensor功耗问题分析方法
android·c++·智能手机·性能优化
ByNotD0g1 小时前
Doris 学习笔记
android·笔记·学习
修炼者1 小时前
【Android进阶】 RenderEffect的底层实现
android
bropro2 小时前
MySQL不使用子查询的原因
android·数据库·mysql
执笔论英雄2 小时前
【cuda】 pinpaged
android·java·数据库
新青年.3 小时前
Android(Compose)使用 LibVLC 播放 RTSP 视频流
android
一见3 小时前
WorkBuddy安装Skill的方法
android·java·javascript
毛骗导演3 小时前
万字解析 OpenClaw 源码架构-跨平台应用之Android 应用
android·前端·架构
happymaker06264 小时前
JDBC(MySQL)——DAY02
android·数据库·mysql