最近接到任务要做AR应用,一切从0开始。
对比了一下各大AR SDK,vuforia/EasyAR/HiAR/VoidAR,目前看来vuforia最常用,但因为免费版在显示时会有水印,pass。(今天看到一篇介绍可以去水印的文章,地址http://www.arvrschool.com/read-7300,非必要暂时不选用)HiAR完全没看,VoidAR看了下官网,教程步骤比较详细,但资料偏少,总之最终选用了EasyAR。
首先,下载了官方的SDK和Demo,不知道为什么最近官网各种没反应,需要的自行搜索下载。
Demo给个链接,其实官网有的,但最近不知道怎么了官网打不开,这里贴个下载连接:
http://download.csdn.net/download/wl1207989309/10200490
第一步,打开Unity软件,我用的是Unity5,点解open,选中下载的Demo中的某个工程,这里以HelloARTarget为例。(选中文件夹即可,如不符合项目目录,会提示Selected floder is not a unity project)
打开后会提示工程版本需要升级,点击upgrade即可,此时若一直打不开,建议直接任务管理器关闭后重试,基本上我这里第二次就可以打开了。打开后界面如图,布局可能不一样,可以选右上角的layout,可以改变布局方式,我这里选用的Tall。
工具栏
从左到右是拖动、平移、旋转、缩放(按中心点)、缩放(按边)、复合功能(平移、缩放、旋转),快捷键分别对应键盘上的QWERT
Scene窗口
这里是开发过程中的一个重要参考效果视图,放置的物体都会体现在这里,后面会做demo物体介绍。其中右上角坐标是可以调整视线位置的。坐标系的x y z可以点击,可以切换到指定方向上看物体。但怎么恢复最开始的视线位置还没有研究出来。
Game窗口
这里是从用户角度看到的效果展示。上方的点击左边按钮可以在game视图看到效果,右边按钮是逐帧播放,中间是暂停,这里因为涉及target识别,看不到实际效果。(如果电脑有摄像头,可以尝试运行,在摄像头放目标图片,但我这里有时候可以打开电脑的摄像头有时候不可以)
Hierachy窗口
这里是正在编辑的场景列表,这里删除的东西只是从场景上删除,不会删除实际文件,后续也会有具体介绍。
Project窗口
这里是项目文件列表,这里对应实际存储的文件,增删都会对硬盘上文件做出实际删除。
Inspector窗口
暂且理解成属性好了,选中某个物体后就会出现这个物体的属性,可以增删改。
常用的窗口就是上面这些了。
下面,正式开始研究如何运行这个demo!
首先,从project窗口下,拖动scense到Hierachy窗口,如果project窗口显示跟我的不一样,点击project窗口右上角三,选择one Column Layout,如图
这时scene窗口就会显示东西了,如图,如果看不到,可以双击Hierarchy窗口下EasyAR_ImageTracker-1,这时可以尝试使用工具栏拖放、平移、缩放功能调整物体大小,以及坐标系调整视线位置。如果想回到默认位置,可以重新选择layout->Tall(暂时只会这个笨办法)
然后我们展开看下EasyAR_ImageTracker-1,有CameraDevice、ARCamera、ImageTracker,每个都可以双击下,看看对应scene里的是什么。其中,ARCamera对应运行设备的摄像头,ImageTracker是一个不可见的组件,用来设置可同时识别target个数以及可以配置行为(script),这些想具体了解的可以自己查查资料。
选中EasyAR_ImageTracker-1后看Inspector窗口,也就是上面说的属性窗口,如图:
可以看到已经有一些属性在上面,其中,TransForm是描述位置、缩放、以及旋转信息的,可以确定一个物体的最终位置和大小及方向,可以结合工具栏QWER使用看这里会变化。下面有2哥Script,点击设置下的Edit Script即可编辑,这里暂时不修改。注意Easy AR Behaviour(Script)下有一个key输入框,这里是EasyAR需要输入key的地方,按照提示进行即可。将你申请到的key复制粘贴到这里。
然后看到下方还有一个Add Component的按钮,用来添加属性,点击后会有很多选项。这里拿Hello AR Target(Script)示范。点击Add Component,在搜索框输入Hello就会联想出Hello AR Target,点击联想的这一项,就会发现Inspector又多了一个hello AR Target。
当然,这个script不是凭空出现的,你可以在project下找到它,如图
所以,以后如果要添加script,可以现在project下添加,然后通过Add Component添加到某个具体的物体上去。(包括其他的东西,如材质,纹理之类的)
记得把刚刚多添加的Hello AR Target(Script)删掉,点击右边设置,remove即可。
Hierachy窗口的其他物体可以都看看有些什么属性,基本上是不太一样的,也可以都去查查都是干什么的。
这里我们再看一下ImageTarget-Image,双击它,你会发现它是一个卡片上有一只小黄鸭。查看右边属性栏,如图
重点看下Sample Image Target Behaviour(Script),这里有配置path/name/size等选项。先看一下Storage下拉框,有App/Assets/Absolute三个选项,这里默认选的Assets,其实对应Project窗口下的StreamingAssets文件夹资源,其他两个暂时还没查对应哪里,以后补充。这时再看path和name,其实就对应StreamingAssets下的namecard.jpg这个文件,你打开这个文件就会发现是小黄鸭下的那个卡片的图。其实这就是在指定要识别的Target图。path需要一个路径,如果StreamingAssets下还有子目录,你需要把子目录加上,name为文件名。
至于Size可以改改看有什么影响。其他选项以后用到再说,先用默认不改动。
然后把一开始Hierarchy窗口默认生成的Untitled给remove掉,选中后点击右键remove调即可。
到这里,基础的东西介绍完了,接下来打包应用。这里将打包一个apk。
首先选择菜单栏File->Build settings...出现下面窗口
你会发现默认选的PlatForm不是Android,选中Android后点击下方的switch platform,切换需要花费一定时间。切换好后,右边有一个Build System,切记一定选Internal(被这里坑了两天,全是泪T^T,我这里默认选的是gradle,然后build就会无响应)当然这里涉及一个选择android sdk目录的问题,如果你还没有配过,一会build的时候会让你指定一个的。以后再想更改,就到Edit->Preferences...->External Tools下配置。
然后点击playersettings...注意现在该看Inspector窗口了,它显示了可配置项。如图
这里你需要填入的有company name(我随便填的)和product name(填你在easyar官网上注册key时填的应用名称),然后Other Settings 下有一个package name(填你在easyar官网上注册key时填的包名),注意看下上图中Graphics APIs,如果你没有的话,看看是不是Auto Graphics API为选中状态,取消选中后会出现,记得选中OpenGLES2
然后点击Build Setting窗口里的Build按钮,大功告成!