这是一篇一步一步实现AR小项目的文章,在我研究了许久之后终于有所突破,所以将过程写下来,希望可以帮到同样想要学习的小伙伴,当然这也是我做的第一个AR小项目,有不足之处望大家见谅呀。
之前下载的2017.0.xxx的版本没有找到关于vuforia的功能,我以为是我当初下载的时候没有勾上,就又下载了一个同版本的下载器,发现没有这个模块,所以又下载了一个2017.4.34c1版本,终于被我找到了ARcamera。
下载的时候要勾选一下Vuforia Augmented Reality模板
安装好之后打开unity,创建一个项目(最好把项目的整个路径都改成英文的,要不然导出会报错,唉,每一个发现的背后都是一把辛酸泪呀,千万不要学我下面的项目中用了中文,最后把所有的路径名称都改了一遍,放一下图吧还是),加上ARcamera,把场景中的主相机删掉,再添加一个image
当第一次点击image时会看到右边红色框框里显示vuforia不可用,要在playersetting中启用。
这时点击file-build settings,继续点击plyer settings在出现的右侧面板中勾选vuforia augmented realit
再次点击image就会发现上图右侧红框框的按钮可以使用了,点击add target。
会打开一个网页,点击login
使用自己的账号登录,如果还没有创建账号就点击Create account now创建一个账号。
登录之后点击get development key获取秘钥。
在license name框里输入要搜索的秘钥名称,勾选下方的小框框,点击confirm
之后会自动返回上一级,看到在license manager下已经添加上了AR_Demo,点击它
复制license key
回到unity中,点击AR Camera再点击右侧红框框中的按钮Open vuforia configuration
将上一步复制的license key拷贝到app license key的框框里。
再次回到vuforia的页面中,点击target manager后点击add database添加数据库
在弹出的窗口database name框里输入数据库的名字,输入完之后点击create创建。
看到database列表里已经存在AR_Demo,点击它。
在add target
接下来要把我下载的两张扑克牌的图片添加到数据库里,也就是我们需要识别的图片。
选择图片类型,添加好之后,填上宽度便于识别,扑克牌的宽度大概是6cm,也就是0.06米,所以width填0.06,
以相同的方式添加另一张图片进去,在rating下可以看到图片识别度的等级,接着点击右侧download按钮,下载到unity中。
在下载时勾选unity editor
指定下载路径,下载好后回到unity里,导入包。
选择AR_Demo打开
import导入
当导入包之后项目表面上没有什么变化,但是当再次点击image时,在右侧面板的database里会发现AR_Demo。
这时,我们已经可以更改项目中我们所要识别的图片了。
先选中image再点击鼠标右键,添加quad
选中quad,更改右侧面板中的参数,沿x轴旋转90度,沿x轴缩放0.6倍,使quad与图片契合。
将另一张扑克图片放到assets窗口里
它是一张梅花k
在assets资源面板点击鼠标右键,create-material创建一个材质球,将其命名为k
按住鼠标左键,将梅花k拖到材质球的albedo框框里
将k材质球拖到quad上,会发现神奇的事情,不过我这两个图片的宽度好像不一致
选中AR相机,打开vuforia配置
给database下的load AR_Demo Database打上勾,下方会出现activate也打上勾,同时可以取消勾选下面的四个√,因为我们用不到。
这个时候打开播放器,我们会在game窗口发现自己,这时当你拿起一张方块Q时,大概你会发现它变成了梅花K,因为我现在手边没有扑克牌,就没有测试,我也不知道它能不能成功,哈哈哈哈哈哈。
嗯。。这个等有机会测试完之后再来反馈吧。
测试完之后关闭播放器,保存一下场景
保存完之后,点击file-build settings,add open sence添加我们保存好的场景,再点击android,最后点击switch platform,使我们的程序可以在Android手机上运行。
点击player settings做一些更改,package name并不固定,但是一定要更改,格式就是XX.XX.XX
在build之前呢,还要先配置一下android sdk和jdk,在我苦苦寻找了许久之后发现了b站上一位大佬讲解的很清楚,链接:https://www.bilibili.com/video/av30917643/?spm_id_from=trigger_reload。当学完了这个教程之后就可以导出apk啦,里面也有sdk和jdk的网盘链接,这里就不再过多的说明,视频教程已经很清楚啦。
不过可能是因为sdk有些过时吧,导出时还会报错,需要更新一下,具体是怎么更新的,我也不太清楚,我的解决方案为(在前期摸索阶段下载了一个名为android studio的软件,据说可以利用它配置sdk和jdk,但是我没有找到相关教程,安装好之后就会出现sdk的文件夹,我把unity中sdk的路径换成android studio的sdk文件夹就好了),下面我把我sdk的文件网盘链接放上来,如果不能用的话就去找一些sdk的资源自行下载吧。
链接:https://pan.baidu.com/s/1QuwDndw7V0Qn0lkYJjZoiQ
提取码:49rk
最后希望这篇文章能给看到的小伙伴提供一些帮助。
2020年也是热爱学习一年呀。
自学真是又辛苦又充满乐趣呀,o(*^@^*)o。