今天,公司做的第一款AR项目终于在苹果appstore上架了。将近三个多月的踩坑和摸索也终于告一段落了,接下来就是不断的进行版本优化和更新,这将是一个漫长的过程。在此,对自己三个多月的开发做一个阶段性的总结,也希望能够帮到一些正在用unity开发AR应用的朋友。

开发环境:

因为考虑到后期IOS打包的问题,为了避免尽量少出错,基本所有的开发全在一部21寸的IMAC上,用的自然是OSX系统(不能用VS真的好痛苦啊)。

暂时只能配置了VSCode进行脚本的编写(想要用unity3d代码补全功能,除了官网所需要安装的插件之外 还需要brew install mono)。

unity版本最初使用的是5.3.4版本,后来升级成了5.3.6版本,原因会在后面详述。高通SDK 也就是Vuforia用的版本是vuforia-unity-5-5-9(截止目前为止 最新的版本在6.0以上)。

安卓打包环境通过下载android studio轻松配置完毕。Xcode从7.3版-8.0版本。

学习:

    之前从未接触过任何有关于AR开发的领域 ,只是隐约记得unity可以用来开发AR应用。这里建议各位AR开发者一定要下载ARSDK提供商的开发案例,直接看官方所提供的应用案例源码无疑是学习的最佳入口。由于Vuforia封装了上层的AR实现源码,将其打包成了DLL,开发者只要实现相对应的接口即可,并不需要过多的深入AR底层,对于底层比较感兴趣的朋友可以去github上搜寻AR底层实现的源代码,当然至今效果最好的还是高通的SDK,只是暂时看不到源码,无法深入学习。

遇坑:

1.AR识别后的模型物体出现不稳定的情况,这一点实际上跟AR识别图有很大的关系,识别图的明暗对比,材质都将对此产生影响。一定要记得将画好的识别图上传到高通的开发中心,高通提供了对识别图的图集打包和识别图的识别点的显示。识别点越多,识别图越容易被显示,相应的识别星级也就越高。
2.现在我的项目中模型摆放的方式是:在场景中摆入所要识别的imagertarget(有多少张就必须在场景中放多少个imagertarget,动态加载是没用的),将所要识别的模型作为子物体分别放在相应的imagertarget下,只要识别图一旦被识别 就会连同模型一起被激活显示,跃然纸上。一开始这种方式是非常好的,但却有一个致命的缺陷,因为要在场景中要摆放所有的模型,那么进入该场景时,就会占用大量的内存(因为要加载场景中所有的模型),这样移动端的配置越低进入的时间就越长,普遍在15秒以上,用户体验非常的不好。这是在项目的后期才发现的 ,为时已晚,不由有些遗憾。而一个我想到一个正确的思路是没必要将模型放在场景中,而是在imagertarget被识别时,以Resource的方式加载模型进场景中,并跟踪imagertarget的位置信息,然后以对象池的方式管理这些模型。这样在进入场景时,就不会因为加载过慢 影响用户体验。
3.每个模型被识别后都会在UI上显示对应的名字(儿童百科全书~)还会播放对应的读音。对此,我才用json配表的方式做了一个对应的配置加载类。所有的数据只需要添表即可。当然,这样每个模型上都必须手动给予一个对应的数据加载唯一标识数。因为模型只有99个,故而用手动的方式给予还算方便,也许还有更好的方式,我暂时没想到。
4.AR模型在多图识别的情况,会出现角度偏移的情况,这个问题非常让人抓狂,经过无数次的debug发现根本不是模型本身出现了角度偏移,而是父物体imagertarget出现了角度偏移,故而只需要在每次失去识别的事件接口中将其复位至原始位置即可。
5.应用中接入了语音识别sdk,很不巧的发现unity5.3.4的一个bug,那便是调用麦克风识别之后,场景中的所有声音全部失效,再也没有任何的声音。这点唯独在unity5.3.4版本下有这样的bug,升级至5.3.6版本后就得以解决。
6.在代码构造上,说实话实在过于凌乱,一方面是因为自己实在是经验不足,对逻辑的把控十分不清,因此在此阶段恶补了面向对象的编程思想和设计模式,才发现自己写的代码实在太难看了,难以扩展和修改,不过好在项目正常的运行起来,希望在将来能将代码构造的更加干净,写出真正优雅的代码。
2016.11.24更新
    7.IOS手机屏幕的边框地带出现了诡异的残影,一开始以为是opengles的问题,试过切换图形库结果还是不行,最后发现是AR摄像机的刷新设置为根据深度进行刷新,后来设为soild color  黑色后 就一切正常了,完美解决。 

基于unity+高通AR项目的一些总结相关推荐

  1. Unity 高通AR发布到Android发生黑屏

    这两天在做Unity 高通AR发布到Android的时候发生黑屏现象 后来发觉是不调用摄像头而不是黑屏(所谓黑屏是因为摄像头背景就是黑色的) 最后发觉是高通的文件夹出现错误 重新复制之前备份的一个高通 ...

  2. Unity 高通AR

    今天测试一下高通AR,使用Unity5.6.4. 首先下载高通SDK,下载地址: https://developer.vuforia.com/downloads/sdk 下载完成后,把我们下载的uni ...

  3. 【Unity 03】高通 AR SDK基本使用以及项目发布

    PS:本系列笔记将会记录我此次在北京学习Unity开发的总体过程,方便后期写总结,笔记为日更. 笔记内容均为 自己理解,会有遗漏处,不保证每个都对,仅供参考 Part 1 网站注册: 官网:https ...

  4. Unity Vuforia(高通)AR

    Unity Vuforia制作AR软件 使用过高通AR.百度AR.EasyAR,还是觉得高通的使用起来更加简易.今天就记录一下怎么使用Vuforia制作一个可识别2D图片与3D物体的AR软件. 使用步 ...

  5. unity开发-高通Ar

    今天没什么事干,就来搞下这个高通AR,用unity做一个简单的小demo,我会把原项目发给大家,顺便说下步骤,让大家看下,一起学习下. 骚年们先看下效果图吧! 最终项目是发布在手机上的,然后运行,扫描 ...

  6. 基于高通AR SDK的Demo总结(一)——常规3D模型的行为脚本

    下载高通AR SDK以及在Unity中的基本搭建不再阐述,具体给出dzyi大神的文章以便参阅:http://blog.csdn.net/dzyi_/article/details/22892641 这 ...

  7. 高通ar,unity实现3D物体识别,图片识别

    话不多说,直接上干货 1.实现的效果: 2.使用步骤: (一)高通官网申请免费key值  (二)创建database (三)创建target 特别说明,此处target分为图片,3d实体模型,以及立方 ...

  8. unity开发之七:unity2017自带高通ar使用方法(填坑)

    一:首先我们先把2017.2自带的高通ar包下载下来,然后才有选择的选项 二:我们开始建AR项目 首先我们往场景中添加ARCamera,我们发现我们输入key,需要如下的操作:,然后我们去官网申请ke ...

  9. 关于unity增强现实AR之高通AR(vufoia)的研究

    研究高通AR有段时间了,具体到识别去官网上注册,打包,将包导入unity3d,需要注意的是识别图片大小问题. 关于识别多物体总结一下: 首先还是一样去官网上打包,https://developer.v ...

最新文章

  1. 皮一皮:前女友竟然说这种话...
  2. SAP Commerce Cloud 的本地开发
  3. .NET Core 和 .NET Framework 启动可执行文件的差别
  4. C和汇编---while反汇编
  5. STL之双向循环链表(List)的内部关系
  6. mysql客户端路由方式_20.3 在InnoDB 集群中 使用MySQL 路由
  7. 龟兔赛跑预测(蓝桥杯)
  8. php上传完没进度条_php使用APC实现实时上传进度条功能
  9. 听说养老保险可以在手机APP上年审,有知道怎么年审的吗?
  10. 2.9.PHP7.1 狐教程-【控制语句 循环】
  11. Google Code Review 浏览评论中的CL
  12. IIS6.0相关漏洞复现
  13. Tungsten Fabric知识库丨更多组件内部探秘
  14. FFmpeg 编码、解码器列表(IOS)
  15. 除去google工具栏启动的GoogleToolbarNotifier.exe进程
  16. Warning: Class ‘com.bupt.dts.DTSFortran‘ not found in module ‘AntlrTest‘
  17. 使用POI提取Word文件的内容(纯文本、带html格式)
  18. 为什么现在java这么难找,现在java工作难找吗
  19. 怎样设计完整的交易系统(主观交易和程序化交易均可借鉴)
  20. 同盾设备指纹简单分析及手机相关ID了解

热门文章

  1. Flutter Row 或者 Column 的拉伸效果,CrossAxisAlignment.stretch
  2. STM32----MPU6050
  3. 微服务的链路追踪和流量可视化-钉钉告警
  4. 免费在线服务器架构图制作
  5. html 组件化 编辑器,谈谈前端组件化
  6. Snakes: Active Contour Models 译文 望大家齐心合力,把它整好
  7. 循环节长度以及循环节
  8. MSYS2 Windows软件分发和构建平台
  9. 商刊:苹果产品发布会缺乏新意平淡收场
  10. 生活娱乐 工业机器人代替工人装配鼠标键盘