AR导航精灵开发复盘

本文是app“AR导航精灵”的开发复盘总结,您可以在AppStore上搜索到;源代码请参看我的GitHub页面:https://github.com/734843327/AR-navigation/

2018年一月我进入国家动漫园实习,跟随刘扬老师学习AR技术。经过一周的摸索准备,我的工作目标定在了AR导航的实现。
为什么是AR导航?
一周里看了很多市场上的AR应用,感觉都有些不尽人意。最大的感受是,现阶段AR还不是特别成熟,没有什么场景是AR刚需,但用户也有尝鲜的需求,所以需要一款最能体现AR特性的应用来吸引用户。Mentor给我看了一款名为AR Penguin的应用——这是一个AR实景导航,打开app 后会出现一只企鹅,带用户去一家水族馆(这也是那家水族馆的营销手段)我看这个项目确实挺有意思,有技术铺垫,有改良空间。而且完全可以体现出AR特性,之后我会专门写一篇文章来讨论我对AR的理解,有一些场景很适合AR,但大多数目前来说并不适合。这里我们暂不展开。
用什么平台、什么技术?
手机的操作系统就Andriod、iOS两大阵营,而市面上流行的AR解决方案有ARKit、ARCore、Vuforia三种,ARkit对应iOS,后两个对应Andriod(这是2018年1月的情况,当然还有一些国产解决方案,但不太成熟,兼容性也不太理想,没有再深入了解;AR市场日新月异,每家的解决方案发展都非常快,后文的所有内容全都是基于当时情况,很有可能后来又发生了天翻地覆的变化,故请读者仅作参考)
另外,由于我一点都不懂安卓和苹果开发,java、object-c啥的也根本没学过(hhh真不是逗你玩)只能靠Unity勉强度日,所以需要用Unity做主要开发平台,而不能使用原生的。三种AR解决方案都推出了Unity插件,下面是一些测评:
ARCore:当时还是公测版,根本不支持我的华为机(即使后面正式版出来了,也只支持少量谷歌、三星机),果断放弃了。

Vu foria:能用,一些功能做的还不错,业界领先,如3D物体识别。但最大的问题是不支持remote,即连上手机后在Unity中直接点play测试。这非常难受,因为尝试新技术,总是要一点一点尝试它的所有功能,总不能做一步打包一个apk吧,太没效率了,也只好放弃。
ARKit:安卓阵营全军覆没,只好选苹果爸爸的ARKit了。一开始特别抵触,因为文档奇缺,尤其是for Unity插件,甚至没有文档,只有一篇介绍性的博客,墙内外能参考的资料也很少。处境可以说十分艰难了。
技术路线
OK,既然是AR导航,主体工作就分为两部分,一是AR,二是导航。AR的难点就是资料少……即使把ARkit官网文档全过一遍,也并没啥卵用,因为ARKit和ARKit for Unity插件的差别实在太大了,只能稍微了解些概念性的东西(强烈建议官方出插件的文档orz)这是我第一次看文档时的想法,但后来发现,其实文档依然是克服所有困难的核心的核心,后面会谈到。
创建一个AR角色并实现基本移动并不困难,要注意的点有:1.实现扫描地面成功后触发事件,要使用MyARAnchorAdded委托,具体代码如下,这还是第一次用到委托这个概念hh。
void OnEnable()
    {
        UnityARSessionNativeInterface.ARAnchorAddedEvent += MyARAnchorAdded;
    }

2.实现人物站在平面上:
yourObj.transform.position = UnityARMatrixOps.GetPosition(anchorData.transform);
要注意anchorData的概念,一定要读透文档,尤其是里面涉及的坐标体系,非常乱,读完文档还要读相关代码,最后再动手试试,才能把那些坐标搞清楚。
到这步的时候,AR应该没有其他大问题,好像也没啥能做的了,于是想先做地图部分,看看导航这块最后有什么需求,AR这边再配合着改。
其实做到现在,对整个产品框架还是没有一点主意的,因为完全没做过这方面的东西,对怎样实现导航根本不懂。只知道别人已经做出来过,那我就肯定也能做出来,就靠着这点迷之自信,开始寻找地图的解决方案。
找了一圈百度/腾讯/高德地图的解决方案,妈嘞,全都是for Android/iOS的,根本没有for Unity的。我也问了一圈,这for iOS的SDK能不能想办法弄到Unity里,后来感觉应该是有解决方案的,但太难,需要自己写接口,我一窍不通,遂放弃。
这是我第一次陷入绝望,好在mentor给我推荐了Mapbox,说是一个对Unity友好的地图解决方案。花了两三天边摸索边看文档(我实在太菜了),最后终于找到了所有需要的接口,那么现在,终于形成了一个大致的产品&技术思路:
  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值