unity3D技术分享

【Unity - Vuforia AR 入门】创建一个最简单的A

2019-03-12  本文已影响21人  大刀和长剑

本文的测试环境:

  • macOS Mojave 10.14.2 / MacBook Pro 2015
  • Unity 2018.3.8f1
  • Vuforia 8.0.10

前言

这类文章已经实在太多了,我为什么还要再写,主要是为了让我关于Vuforia的整体知识框架完整。

本文将完成这样一个流程:

  1. 迅速搭建一个最简单的AR程序
  2. 生成安卓的apk
  3. 手机上运行测试。

准备

所有工作的提前是你的 Unity 可以正常使用,请保证版本至少是2017.3, 因为对于Vuforia来说,之前的版本用着不爽,所以尽量安装最新版本的Unity

你还需要一个Vuforia账号,因为程序需要添加许可证密钥。

另外你可能需要一个外置的摄像头,因为摄像头要对准目标图像,那么摄像头能随意动,要么目标图可以动,总之摄像头要能照到目标图就行了,你自己想办法啦。

还有就是可能你的 Android SDK Tools 需要升级到26.1.1,因为打包apk时下图是可能会遇到的问题,如果你用不着这个则不用理会:

升级 Android SDK

搞定上面的这些东西也非常简单,如果你需要额外帮助,百度应该可以的。

下文开始时将认为你已经把所需要的东西均已准备完毕,并且已掌握 Unity 的基础知识和操作,比如创建项目,创建脚本以及生成apk等等。

1. 迅速搭建一个最简单的AR程序

创建一个项目,取名 test, 等加载创建完成是这样子:

新建 test 项目

设置Vuforia可用,可以在Edit/Project Settings/Player/XR Settings 下勾选 Vuforia Augmented Reality Supported,初次勾选时会弹窗询问是否接受相关内容,点 Accept 即可:

勾选 Vuforia Augmented Reality Supported。初次勾选时会弹窗询问时候接受相关内容,点 Accept 即可。

回到项目中,删除 Main Camera,添加AR摄像头,如下:

添加AR摄像头
导入

然后继续添加ImageTarget,如些:

屏幕快照 2019-03-12 下午1.50.35.png
导入
如果忘记导入默认的Image数据,可以点 Import Default Target:
导入默认Image数据
在ImageTarget下挂一个小球:
添加个Sphere
如图

添加Vuforia许可秘钥:登入Vuforia,在License Manager下创建一个 test 许可证并打开复制其内容;回到Unity,选中 ARCamera,点击 Open Vuforia Engine configuration,第一行处粘贴秘钥:

登入Vuforia,在License Manager下创建一个 test 许可证并打开复制其内容
选中 ARCamera,点击 Open Vuforia Engine configuration
粘贴秘钥

运行程序(程序将会使用摄像头,授权让Unity使用即可),有影像表示目前一切正常,然后关闭程序,继续下一步...


程序运行良好

Assets/Editor/Vuforia/ForPrint/ImageTargets 里面有我们需要的目标图像,打开它:

在 Assets/Editor/Vuforia/ForPrint/ImageTargets 里面

重新运行程序,然后拿起摄像头对准目标图像,.... 等等 ... Mac 上怎么拿起摄像头😂😂,其实是这样,你需要一个外置的摄像头(下面是用外置的摄像头测试的,你只要能让摄像头照到目标图像就行。):


苹果? 对,是苹果!

这样的话,Vuforia默认使用的摄像头是本机,所以需要设置让Vuforia使用这个外置的摄像头,选中ARCamera,点击 Open Vuforia Engine configuration,找到Camera Device,选中你的外置的摄像头(FaceTime HD Camera 是本机的摄像头):


屏幕快照 2019-03-12 下午2.23.20.png

ok,重新运行程序,拿起摄像头,对准目标图片,有结果了:


程序识别良好,看到那个白球没有,看到最下面一行控制台输出的 Trackable Astronaut found 没有,这说明这个程序识别良好。

生成安卓的apk

这里有一个小问题,会导致Unity生成apk失败,当你Build时,你会看到爆这样的错,它说 Vuforia 不支持Android TV

Vuforia 不支持Android TV
解决也简单,在 Player Settings中去掉 Android TV compatibility 就ok,(注意看爆的错误,它给出了解决问题的办法。):
Player Settings 中去掉Android TV compatibility

重新打包apk:


apk生成中...

完工:


apk

手机上运行测试

将apk安装在安卓手机上:

安装test apk

在手机上运行测试:


程序识别目标图片状况良好

结束

上一篇下一篇

猜你喜欢

热点阅读