AR移动应用开发(一) Unity与EasyAR

时间:2022-08-31 23:26:40

AR移动应用开发(一) Unity与EasyAR

  从老师哪里接到了一个小项目。具体就是主一款具有AR功能的旅游应用。而AR方面的需求十分简单,就是识别图片,并显示出对应模型就行了。就跟EasyAR的Unity样例一个样子。所以这里就选择使用android跟unity进行开发。由于开发过程中有第一次接触EasyAR跟android的arr包碰到了不少问题。为了防止以后碰到同样的问题又要去重新翻一次网上的资料。所以就简单记录一下开发的过程。

首先是关于图像识别跟模型显示的方面,这一方面通过EasyAR+Unity实现,并作为插件加入到Android工程当中。在这里还是主要参考了EasyAR的样例工程。

首先新建了一个Unity工程,导入EasyAR的相关资源。新建一个场景并把EasyAR_Startup这个Prefab放入场景中,并且删掉所有Camera。打开playersetting修改包名

然后到EasyAR的官网那里申请KEY。 Key值生成完成后,输入到EasyAR_StartUp当中,就可以完成了。
然后就是把识别图片加入到Unity当中。在Unity中新建一个StreamingAssets文件夹,并把EasyAR样例中的targets.json文件一并拖入其中。之后需要添加识别图片就只需要放图StreamingAssets文件夹并修改targets.json就行了。

JSON内容:

{
  "images" :
  [ { "image" : "图片名1", "name" : "变量名1" }, { "image" : "图片名2", "name" : "变量名2" }, ] }

然后往场景添加ImageTarget这个prefab,每个需要识别的图片都对应一个ImageTarget。为了更好的分辨不同的ImageTarget,可以为每一个需要识别的图片生成一个材质,并赋予给对应的ImageTarget。然后把需要显示的模型作为子物体添加到对应的ImageTarget当中,子物体跟ImageTarget的位置关系就是显示出来的模型的位置关系。

AR移动应用开发(一) Unity与EasyAR

这里我们把ImageTarget的脚本去掉,放入我们在EasyAR样例工程中复制过来的脚本,并修改ImageTarget的对应值

AR移动应用开发(一) Unity与EasyAR

其中Path对应的是json的文件名,name对应你上面在json为识别图注册的变量名。

关于AR播放视频,把视频放入SteamingAsset文件夹类,并在一个ImageTarget下建立一个立方体的子物体,为立方体添加VideoPlayerBehaviour脚本

AR移动应用开发(一) Unity与EasyAR

修改参数。Path为文件名,SclePlane为播放的位置

完成之后导出APK进行测试
AR移动应用开发(一) Unity与EasyAR

AR移动应用开发(一) Unity与EasyAR