开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

开发者专栏

关注:1667

当前位置:游戏蛮牛 技术专区 开发者专栏

__________________________________________________________________________________
开发者干货区版块规则:

  1、文章必须是图文形式。(至少2幅图)
      2、文章字数必须保持在1500字节以上。(编辑器右下角有字数检查)
      3、本版块只支持在游戏蛮牛原创首发,不支持转载。
      4、本版块回复不得无意义,如:顶、呵呵、不错......【真的会扣分的哦】
      5、......
__________________________________________________________________________________
查看: 3107|回复: 41

[MemoryC] Unity3D上手Vuforia增强现实应用(一)

[复制链接]  [移动端链接]
排名
3755
昨日变化
24

19

主题

123

帖子

1210

积分

Rank: 9Rank: 9Rank: 9

UID
175038
好友
23
蛮牛币
2391
威望
0
注册时间
2016-10-12
在线时间
228 小时
最后登录
2017-4-23

专栏作家活力之星

发表于 2016-10-12 19:26:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
本帖最后由 MemoryC 于 2017-2-9 09:53 编辑

前言:


    本工程使用的版本为5.3.2f1(64bit)


    本工程使用的Vuforia版本为vuforia-unity-5-5-9.unitypackage,下载地址https://developer.vuforia.com



    我以前都用4.x的Unity3D和3.x.x的Vuforia版本,因为稳定性高且省的各种验证和API不兼容,不过高版本毕竟是大势所趋,所以这里用高版本。本文的最大意义在于异常处理,在实践中你能发现本文的重要性。(关于异常处理集中在下篇讲,因为博主积分不够,每一篇博文能粘贴的图片有限,敬请谅解)。废话不多说,开始动手。




1、首先打开Unity3D,并新建一个工程,怎么建工程就不用多说了吧,以下是空白工程:​

新建空白工程

新建空白工程

空工程

2、导入我们所需要的Vuforia插件包。

    注意:插件的路径一定是英文路径,不能包含中文或特殊字符,否则很可能导入失败。把vuforia-unity-5-5-9.unitypackage拖动到Unity3D的Asset中,稍等会弹出包里面的内容:

导入unitypackage

导入unitypackage

导入Vuforia

    我们直接点Import导入就行,点击后会出现进度条,这时候你可以想一想下一顿吃什么,差不多进度条就走完了,导入成功,Asset目录下会出现Plugins文件夹和Vuforia文件夹。

Asset目录

Asset目录
Asset目录


3、打开/Asset/Vuforia/Prefabs文件夹,会出现:

Prefabs

Prefabs
prefabs

    这些都是Vuforia插件的预制件,使用这些预制件我们就能做出AR的最基本的东西了。

​4、我们把Hierarchy里面的MainCamera删除,然后把预制件ARCamera拖到场景中去:


拖入ARCamera

拖入ARCamera
拖入ARCamera

​    在Hierarchy中选中ARCamera,查看Inspector视窗:

Hirerarchy

Hirerarchy

选中ARCamera

Inspector

Inspector
此处填写APP License Key

    在这里填写APP Key,也就是Vuforia官网上登录自己账号,Develop栏目下Lisence Manager里面你之前建立的APP Key(Vuforia4之前的插件版本不需要这个,这也是我之前喜欢用低版本插件的原因),如果没有APP Key就新建一个。然后把下面复制了,粘贴到Unity里面。

Vuforia官网AppLisence

Vuforia官网AppLisence
Vuforia APPLisence

    粘贴后如下,当然还有一些参数设置根据自己需求改,我是如下设置的:

ARCamera Inspector设置

ARCamera Inspector设置
ARCamera Inspector设置

5、把预制件的ImageTarget拖动到场景之中

拖入ImageTarget

拖入ImageTarget
拖入ImageTarget

    这时候,选中Hierarchy中的ImageTarget,查看Inspector视窗,会看到ImageTargetBehavior下有个“No target defines.... ”,猛戳它,然后跳进Vuforia官网,登陆后,进入Develop栏目下的Target Manager,如果你之前在这里建过Target好办,选择你需要的下载下来,没有建立过的自己琢磨一下建一个。

Vuforia TargetManager

Vuforia TargetManager
选中目标

    选中你所需要的target Name,并点击下载

选中并下载ImageTarget

选中并下载ImageTarget
选择target并下载

    选择平台为Unity Editor并点击下载

选择Unity

选择Unity
选择UnityEditor

    然后就会弹出下载提示框,将文件保存到你所需要的位置。为了方便我保存在桌面。(路径必须是全英文路径)
6、像导入Vuforia一样,将刚刚下载的unitypackage文件导入Unity的Asset,如下图,依旧默认全选,点击Import导入。

导入ImageTarget

导入ImageTarget
导入target

7、导入完成后这时候再在hierarchy中选中ImageTarget,查看Inspector如下:

ImageTarget Inspector

ImageTarget Inspector
选择database

    这时在ImageTargetBehavior中会出现DateBase和ImageTarget选项。先选择dateBase,这里出现的就是你刚刚导入的包;再选择ImageTarget,里面是刚刚导入的包里面包含的目标图片,选择一个你需要的,这时候你的Scene就会变成这样:

ImasgeTarget in Scene

ImasgeTarget in Scene
场景中ImageTarget

    场景里的这张图片就是你所选择的Target图片。
8、这时候我们再Hierarchy中新建一个物体,为了方便演示我用球代替。

添加球

添加球
新建Sphere物体

9、我们把刚建的模型拖动为ImageTarget的子物体

将Sphere变成子物体

将Sphere变成子物体

拖动为子物体


    这样最简单的AR demo就完成了

10、演示效果:点击运行按钮开始运行

演示效果

演示效果
演示效果

异常处理:
    异常处理是本篇的重点,因为很多刚刚从事相关开发的开发者凭着摸索或者参照其他材料,以上内容也很容易完成。但实际中可能会遇到一些因缺少经验而难以解决的问题,所以,前面的种种都是为了我接下来讲异常处理做的铺垫。



正文:

1、在Editor中运行调试程序,如果出现“Screen is to small to display authorization dialog. Authorization denied”这个bug导致演示失败,是因为Game视窗太小导致的,直接调整Game视窗大小即可。​

图片35.png
解决方案

​2、如果ARCamera的WebCamBehavior.cs脚本出现“An error occured while trying to enable Vuforia Play Mode”,以及当你使用的摄像头不是主流摄像头时出现的“Webcam profiles ensure that Play Mode performs well with your webcam. You can create a custom profile for your camera by editing .... profiles.xml”.截图如下:

图片37.png

​对于前一个问题:这种问题是由于Unity版本问题而引起的,如果你使用Unity4.x就不会出现这个问题。这种情况该怎么办呢,继续看:

图片38.png
拖动示例


按上图打开Project下文件目录,你会惊奇的发现WebcamProfiles文件夹及其中的文件都在/Asset/Vuforia/Editor/之下,这就好办了,按上图方式拖动就行了。拖动完成是这样的

图片39.png
拖动完成


对于第二个问题:

打开该文件夹下的profiles.xml文件,如果发现没有我们当前想用的摄像头,就按照原有的格式添加一个 ......就行了。​

图片40.png
编写profiles.xml

3、如果你遇到下面这个问题:“Failed to load 'Assets/Plugins/VuforiaWrapper.dll',expected 64 bit architecture ... But was IMAGE_FILE_MACHINE_I386 . You must recompile your plugins for 64 bit architecture”

图片41.png
异常截图


这是由于Vuforia的库不匹配引起的,希望以后Vuforia能修复这个问题,我们该怎么办呢?

别急,查看Project文件目录如下:

图片42.png
/Assets/Plugins/


在/Plugins/文件夹下新建文件夹,命名“x86”。并把上面红框里("/Assets/Plugins/")四个文件拖动到该新建的文件夹下。如图:​

图片43.png
解决成功截图


4、如果在导出应用时遇到“Unhandled Exception: System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded. ”问题,这是Unity3D 5.x的问题

图片44.png


解决办法是打开Unity Service的广告或者In-APP purchase。

图片45.png
Unity Services


按下这朵云的图标即可进入Unity Services,然后你可以打开 Ads,In-APP purchase等等,问题就能解决了。


P.S.关于Unity3D加Vuforia的AR简单小游戏开发的最基础的介绍以及相关异常处理就到这里​,当然要想做的更好你需要足够的耐心,一定的编程能力,充分的面向对象思维,以及一个好的美工



如果该文章对您有帮助请点击文章下方的支持评分”,MemoryC将继续努力提供更多文章谢谢

更多图片 小图 大图
组图打开中,请稍候......

评分

参与人数 2鲜花 +5 收起 理由
狂式。♂ + 3 很给力!
2542397398 + 2 很给力!

查看全部评分


回复

使用道具 举报

6蛮牛粉丝
1013/1500
排名
1184
昨日变化

0

主题

55

帖子

1013

积分

Rank: 6Rank: 6Rank: 6

UID
46269
好友
0
蛮牛币
2271
威望
0
注册时间
2014-9-23
在线时间
250 小时
最后登录
2017-4-17
发表于 2016-10-13 09:48:50 | 显示全部楼层
额,我来消灭零回复吧
[发帖际遇]: cat323 乐于助人,奖励 3 蛮牛币. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

5熟悉之中
601/1000
排名
3344
昨日变化
2

9

主题

111

帖子

601

积分

Rank: 5Rank: 5

UID
174370
好友
1
蛮牛币
2538
威望
0
注册时间
2016-10-10
在线时间
185 小时
最后登录
2017-4-21

活力之星

QQ
发表于 2016-10-13 10:12:56 | 显示全部楼层
cat323 发表于 2016-10-13 09:48
额,我来消灭零回复吧

运气这么好。

回复 支持 反对

使用道具 举报

5熟悉之中
601/1000
排名
3344
昨日变化
2

9

主题

111

帖子

601

积分

Rank: 5Rank: 5

UID
174370
好友
1
蛮牛币
2538
威望
0
注册时间
2016-10-10
在线时间
185 小时
最后登录
2017-4-21

活力之星

QQ
发表于 2016-10-13 10:14:46 | 显示全部楼层
异常处理部分写的好。

回复 支持 反对

使用道具 举报

7日久生情
1507/5000
排名
868
昨日变化
2

0

主题

405

帖子

1507

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
111260
好友
0
蛮牛币
4809
威望
0
注册时间
2015-6-30
在线时间
246 小时
最后登录
2017-4-23
发表于 2016-10-13 10:27:16 | 显示全部楼层
谢谢!图挂了

回复

使用道具 举报

排名
19410
昨日变化
7

0

主题

5

帖子

36

积分

Rank: 1

UID
171015
好友
0
蛮牛币
44
威望
0
注册时间
2016-9-22
在线时间
17 小时
最后登录
2016-10-21
发表于 2016-10-13 14:15:48 | 显示全部楼层
图挂啦,图片仅限于新浪博客~~

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1362/1500
排名
2272
昨日变化

0

主题

298

帖子

1362

积分

Rank: 6Rank: 6Rank: 6

UID
138040
好友
0
蛮牛币
2756
威望
0
注册时间
2016-3-1
在线时间
624 小时
最后登录
2017-4-23
发表于 2016-10-13 14:43:05 来自Mobile--- | 显示全部楼层
正学习如何做AR,感谢分享!!!!

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1126/1500
排名
1096
昨日变化
3

4

主题

66

帖子

1126

积分

Rank: 6Rank: 6Rank: 6

UID
122711
好友
0
蛮牛币
2698
威望
0
注册时间
2015-9-15
在线时间
312 小时
最后登录
2017-4-23
发表于 2016-10-14 07:48:10 | 显示全部楼层
后面的好几组图片挂掉了,请修复下,谢谢

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1126/1500
排名
1096
昨日变化
3

4

主题

66

帖子

1126

积分

Rank: 6Rank: 6Rank: 6

UID
122711
好友
0
蛮牛币
2698
威望
0
注册时间
2015-9-15
在线时间
312 小时
最后登录
2017-4-23
发表于 2016-10-14 07:51:12 | 显示全部楼层
vuforia交互方面的,请问方便出些教程吗,谢谢

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1073/1500
排名
1503
昨日变化
1

1

主题

136

帖子

1073

积分

Rank: 6Rank: 6Rank: 6

UID
131761
好友
0
蛮牛币
1732
威望
0
注册时间
2015-12-15
在线时间
328 小时
最后登录
2017-4-21
发表于 2016-10-14 08:08:49 | 显示全部楼层
推一個~~

回复

使用道具 举报

排名
3755
昨日变化
24

19

主题

123

帖子

1210

积分

Rank: 9Rank: 9Rank: 9

UID
175038
好友
23
蛮牛币
2391
威望
0
注册时间
2016-10-12
在线时间
228 小时
最后登录
2017-4-23

专栏作家活力之星

 楼主| 发表于 2016-10-14 16:04:45 | 显示全部楼层

抱歉,改好了。以前再新浪博客上发的,迁移过程出了问题

回复 支持 反对

使用道具 举报

排名
3755
昨日变化
24

19

主题

123

帖子

1210

积分

Rank: 9Rank: 9Rank: 9

UID
175038
好友
23
蛮牛币
2391
威望
0
注册时间
2016-10-12
在线时间
228 小时
最后登录
2017-4-23

专栏作家活力之星

 楼主| 发表于 2016-10-14 16:07:24 | 显示全部楼层
关于Vuforia 6.0.117 容易出现的一些问题,后面再补充。或者大家如果遇到新的问题,也欢迎交流讨论。

回复 支持 反对

使用道具 举报

排名
3755
昨日变化
24

19

主题

123

帖子

1210

积分

Rank: 9Rank: 9Rank: 9

UID
175038
好友
23
蛮牛币
2391
威望
0
注册时间
2016-10-12
在线时间
228 小时
最后登录
2017-4-23

专栏作家活力之星

 楼主| 发表于 2016-10-14 16:20:37 | 显示全部楼层
QQ图片20161014161936.png

强烈建议:游戏蛮牛评论区改版

回复 支持 反对

使用道具 举报

4四处流浪
474/500
排名
4910
昨日变化
1

4

主题

147

帖子

474

积分

Rank: 4

UID
175029
好友
5
蛮牛币
964
威望
0
注册时间
2016-10-12
在线时间
131 小时
最后登录
2017-3-14
发表于 2016-10-15 09:51:48 | 显示全部楼层
留着,学习了

回复

使用道具 举报

排名
3755
昨日变化
24

19

主题

123

帖子

1210

积分

Rank: 9Rank: 9Rank: 9

UID
175038
好友
23
蛮牛币
2391
威望
0
注册时间
2016-10-12
在线时间
228 小时
最后登录
2017-4-23

专栏作家活力之星

 楼主| 发表于 2016-10-17 17:03:45 | 显示全部楼层
墨家教徒 发表于 2016-10-14 07:51
vuforia交互方面的,请问方便出些教程吗,谢谢

AR只是交互的一种方式,多种交互方式组合一起才好玩。如果说只是AR技术学习的教程的话,网上一大堆。别人写过的我一般不会再写,就像这一篇我也主要讲的是初学者经常会遇到的一些问题。如果说你想要一个AR项目的实战,我如果后面有自己的项目,我会考虑写教程与大家分享的。PS:目前几个项目所有权不在自己,不好写教程

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表