最近研究了一下Unity开发AR应用。这里使用的是EasyAR的SDK。本人也是刚开始使用,知识记录学习顺便分享一下,如有问题还请多多指教
EasyAR的云识别是要花钱的,但是仅仅是个人使用,要识别比较少的图片的话可以直接使用本地的,不需要使用云识别。下面进入正题。
首先进入EasyAR官网的开发者中心申请一个SDK License Key。
接下来就是填写一个小表格。如下:
注意:这里的的PackageName(Android)的名字一定要填写正确,这个要和Uni统一发布时的PackageName完全一致,格式:com..。
接下来点击确定就OK啦。
填写好后可以查看到如下内容:
接下来就需要去下载一个SDK啦。这里也可以下载好一个官方的例子,到时候直接替换就好啦。这里我下载的是EasyAR SDK v2.3.0
准备工作做好了,接下来开工。注:本人使用的Unity版本:Unity5.6.1
创建项目啥的就不啰嗦了,直接导入刚下载好的SDK包。,导入后的东西在下面,就这些
我们在准备一张要识别的图片基本商就OK啦。
在Assets下创建一个StreamingAssets文件夹,将要识别的图片导入进去。下面开始搭建场景。将场景中原有的摄像机删除,将EasyAR文件下的Prefabs中的EasyAR_Startup拖入场景中
在场景中再加入一个ImageTarget。位置EasyAR----->Prefabs----->Primitives----->ImageTarget。直接将其拖拽到场景中即可
在ImageTarget下添加一个Cube当做识别后要显示的模型。也可以放入其他的完全看自己的喜好。
接下来就开始关键的部分了。我们可以看到刚刚添加到场景中的ImageTarget的ImageTargetBehaviour组件上好多地方都是空的,我们要做的就是填写好这些地方有两种方法配置图片,一种是将要识别的图片的明智直接写在一个json中,一种是直接填写要识别的图片的名字。
第一种:添加json文件
{
"images" :
[
{
"image" : "idback.jpg",
"name" : "idback",
"size" : [8.56, 5.4],
"uid" : "uid-string, should NOT duplicate",
"meta" : "what ever string you like."
}
]
}
对于json配置图片,我们必要的两个字段是:
- image ---- 导入到unity中的识别图名字+后缀格式
- name ---- 识别图名字
如果是多个图片可以用如下格式:
{
"images" :
[
{
"image" : "idback.jpg",
"name" : "idback",
"size" : [8.56, 5.4],
"uid" : "uid-string, should NOT duplicate",
"meta" : "what ever string you like."
},
{
"image" : "argame00.jpg",
"name" : "argame"
}
]
}
下面我们就可可以填写组件中空白的内容了,如下:
如果不使用json可以直接填写识别图片的名字,如下:
到这里要识别的图片就算配置完成了,但是你以为这就完了吗?NO。
还有好多。选中EasyAR_Startup会看见组件中有一个填写key的地方,将刚才申请到的SDK License Key粘贴到对应的地方
终于离发布很近了。打开playerSetting界面,设置一下PackageName。设置成刚才申请的那个名字就好了。就是com,.。这个。
好了,发布出来就可以使用了。