使用Unity+Vuforia搭建一个AR应用,混合现实北京邮电大学实验报告.docxVIP

使用Unity+Vuforia搭建一个AR应用,混合现实北京邮电大学实验报告.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
结课实验报告 实验目的和要求 最低要求: 基于视频和实验书的内容,使用Unity+Vuforia搭建一个AR应用, AR至少能够识别两个目标,第一个目标要求是识别上次实验的参考图,显示出对应的模型,(比如上次你搭建了吉他,就扫描你的吉他照片显示吉他)第二个目标自选,第一个目标需要放缩和旋转功能,第二个要有旋转,放缩和动画播放功能,并且能够使用虚拟按键与对象进行交互.视频中只有两个按键,这里要求有六个按键播放模型的六种动画(模型文件自带多种动画,自选六种). 被识别的图片和模型图片 1. 显示模型 2. 显示模型 实验步骤 首先搭建配置环境 使用火狐浏览器登陆vuforia更好用些 验证时vuforia发验证邮件需要点击这一封邮件。 unity导出apk时如果提示版本过低,可点击update 导入第一个要识别的目标图片和显示的模型 首先3dmax导出模型 在d盘根目录新建一个文件yuheyugang,然后将贴图放在里面的maps文件夹 在3dmax中修改材质为standard,使得材质均可以导出。然后模型导出为yuheyugang.FBX。 将整个yuheyugang文件夹拖入unity的ASSET 新建AR camera 新建一个imagetarget1 导入在vuforia网站生成的包。database 为AR1,名字为gang 在imagetarget的检查器,设置好要要识别的图片 将yuheyugang模型拖入场景视图,调整位置大小 放置在imagetarget1层次下 点击AR camera移动使得物体进入preview 实现缩放和旋转 为yuheyugang模型添加脚本,实现缩放与旋转 效果图在实验结果中 导入第二个要识别的目标图片和显示的模型 再新建一个imagetarget 导入机器人模型assault_mech 将机器人拖入场景 将assault_mech放置在imagetarget层次下 导入包,设置好要识别的图片 database AR,图片名xiongxiongxiong 设置好AR camera位置 功能实现 为assault_mech添加脚本,实现机器人的旋转缩放和点击做动作的功能,效果见实验结果描述 新建一个virtual button,设置好名字 新建一个球,赋予材质红色 将球置于button层次下 调整virtual button和球的位置大小。按键要设在特征点多的地方才灵敏。不要设在白色地方 为button添加脚本move实现控制模型做动作 运行效果: 触摸按键会变大,同时做动作 依次类推,设置六个按键 在代码中编写对应不同的按键模型播放不同的动画。 后来按键按下的行为改做按键变为白色 最终效果如下图 导出安卓apk,安装到手机上。扫描图片即可显示模型 实验结果 第一个目标 正常的模型 缩小放大:双指 旋转:手指在屏幕上滑动,物体即可旋转 第二个目标 放大,缩小:双指 旋转:手指在屏幕上滑动,物体即可旋转 不同按钮做不同动作 遇到的问题及解决方案 1.安卓apk安装,解析包出现问题 解决:最高api level改为如图 Unity3D的错误:NullReferenceException: Object reference not set to an instance of an object 解决:导致这个错误的原因是把实例化写在start()方法里面 解决方法是把最先实例化的全部放在Awake()方法中去,最后问题解决。 Awake在脚本被实例化的时候就会被调用(不管脚本是不是enable的),而且在脚本的生命周期中只会被调用一次。Awake是在所有对象实例化之后,所以我们可以放心大胆地去使用诸如GmeObject.Fine之类的方法来在Awake中给各个组件之间添加引用 关系。Awake会在所有对象的Start之前调用,但是注意不同对象之间的Awake顺序是不得而知的。 Start是在对象被第一次enable之后,在Update之前调用的,Start在脚本的生命周期中也只可能被调用一次。Start可能不会被立刻调用,比如我们之前没有让其enable,当脚本被enable时,Start才会被调用。 官方文档的建议是:尽量在Awake函数中进行初始化操作 之前注册vuforia有问题发现谷歌浏览器不好用,换火狐就好用。下载也快 unity导出apk时提示版本过低,使用现有的sdk导出失败 解决:unity导出apk时如果提示版本过低,可点击update 5.3dmax模型导出有很多要注意的地方。有的材质无法导出,需要替换。贴图的文件夹一定要放对。 心得体会 使用unity可以快速搭建有趣的AR应用,让人感受到混合现实的魅力。可以实现十分丰富的功能,开发AR游戏。 安装中一定要注意unity

您可能关注的文档

文档评论(0)

1+99 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档