使用Unity2018.2实现AR开发之一(模型的显示以及脱卡)

随着Unity版本的不断更新,越来越多的优秀的插件被Unity官方集成,于是我试着体验了一下Unity内部继承的Vuforia的AR系统。

新建一个工程。

612d7bf90fe553afc83b86128ba95451887.jpg

在默认场景内添加一个AR Camera,此时会弹出

0450a8731841226312b370dfb4c4ff84076.jpg

询问你是否添加VuforiaAssets,这里选择添加。

删除掉原有的摄像机。

f70a1ce49dabe02e0fdb5a2c5bb5e4c26f0.jpg

在PlayerSetting下勾选Vuforia Augmented Realit选项,此时工程已经可以运行,并且调用设备的摄像头进行图片识别。

在ARCamera下添加一个Image

d03a8135ace463edda6aa3c5bfbe6d00fee.jpg

该组件将会作为ImageTarget出现在场景内

接下来该去自定义识别的图案了,选中ImageTarget

a9315103f7f9d80fd9d2fdb25bba9835afd.jpg

点击AddTarget按钮,会自动跳转到Vuforia开发者账户,没有就注册一个

48a4daecdf70342955f92d671c9d1233762.jpg

点击GetDevelopmentKey,注册一个APP,注册完成之后,按照提示复制lisencekey。

找到Rescources/VuforiaConfiguration ,将刚才复制好的lisencekey复制到下图位置

2d6da02fefbe310328ac9b1b356893a1139.jpg

回到开发者官网,是时候注册我们自己的识别图像database了,点击TargetManager,Add database,然后上传自己的图片。

f99584e4d04499d97a774e3edf9f13a96f9.jpg

图片上传完成之后,需要我们自行下载database,点击如下图右下角,Download Database。

ed43d5f01f8d4e41af92cb606a6f57a490d.jpg

下载下来之后,我们把DataBase文件解压到Editor/Vuforia/ImageTargetTextures下面,bc1b2b3d7b4c9e699f7c087faaec3880466.jpg

选中ImageTarget,此时进入ImageTargetBehaviour

e8726eceec6d33a43e47b19d70d1654a6ba.jpg

将Type设置为RreDefined,我们可以选择本地已下载好的Database,内部的图片也已经可以自由选择。

将模型拖拽到场景中,放在ImageTarget子项中。

e2918b9ccd2e3c01a9457dc3f43cc9c683c.jpg

这样模型显示的步骤就算是初步完成了。

下面该轮到脱卡功能的制作了。

选中ImageTarget,进入其身上挂载的脚本TrackableEventHandler,我们可以看到,这里写着一切关于目标丢失,目标找到的回调方法。

那么接下来,我们需要改写这些方法,新建一个脚本,重命名我这边命名为M_TrackableEventHandler,将原TrackableEventHandler的代码复制进来,然后我们开始改写。

由于我选择的是在模型卡片丢失的时候将模型放在ARCamera下,所以我这里储存了ARCamera的位置9d8b7d95fb926bbfdee7f699940413c27e1.jpg

也可以根据自己的喜好来修改位置。

我们点开  PROTECTED_METHODS,会发现下图两个方法

f0f9dcc22f15132d8e6e691e615534a733b.jpg

这两个方法就是控制识别目标匹配/不匹配时的两个方法,可以看到,found的时候是显示模型,打开触发器,打开canvas等,而lost与之相反,此时我们需要改写Lost方法。

因为脱卡的目的就是,模型的识别目标丢失之后,模型依旧可以显示,那么我们首先假设这个lost内的所有语句都可以注释。

注释,然后运行工程,可以发现模型从一开始就显示在了场景中,很显然,这个lost在工程运行没发现目标的时候是会去执行一遍,用于隐藏我们的模型的。

于是,我将这段代码放在了Start方法内,在脚本执行的时候隐藏我们的模型。

运行工程,将目标图片置于摄像机前。这次与我们的目的是一样的,在工程运行的时候未发现目标的时候模型是不显示的,一旦发现目标,模型将持续显示下去。

 

转载于:https://my.oschina.net/u/3956921/blog/1938562

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值