这篇文章主要针对AR项目中遇到的问题做一个记录,也希望可以帮助大家在开发中少踩坑,会持续更新。
开发工具:Unity 2018.4,unity ARFoundation
目标:与另一个unity项目一起整合到iOS和Android 原生APP中。
一、包体优化
1、删除不必要的代码
2、删除不需要的模块
3、iOS脚本剔除会误删代码,导致运行时报错,使用link.xml可以标记哪些脚本不会被剔除
4、Android设置中的目标架构只勾选一个ARMv7,不必选择x86,目前市场上主流的手机都是ARMv7这个架构
4、素材优化
二、整合到iOS原生APP
1、需要去除unity广告模块
2、iOS端无法整合一个以上的unity项目,所以只能合并unity项目。当退出一个模块时,其实只是暂停unity而已
3、ARKit只支持特定的iOS版本,低版本不可用
4、iOS进入unity时,需要判断是不是AR,然后启动ARKit服务(原生开发完成),否则AR不可用
三、整合到Android 原生APP
1、检测是否支持ARCore最好使用原生方法检测,不支持则不启动unity
四、总结
1、ARKit对识别的图片要求较低,效果比ARCore好
2、图片识别效果较差,不适合实时定位,只适合初始定位
3、ARFoundation属于unity新推出的插件(19年中旬),会存在一些bug。在整合到iOS时,退出unity的时候会出现一些crash问题,最后是官方给的补丁解决了这些问题。
unity所有新推出的插件都有可能出现bug,所以不必过度追新。