Unity 与EasyAR结合 新手入门教程

###前言:

暑假里刚刚接触EasyAR,配合Unity使用后仿佛打开了新世界的大门,让我对AR这方面的技术有了一定基础的了解,特此回顾一下这个月的心得了解,开个小坑,第一次写文章,望看客海涵。


###(一)开发环境
1.Windows 10 操作系统
2.EasyAR SDK 2.2.0 Basic(Unity版)
3.Unity3d 2017.2.0f3

###(二)下载Unity3d 并安装

我们找到官网上的下载链接Unity3d,进入后如下图点击下载Unity 2017.2.0f3 ,(据说最新版的Unity有点不兼容EasyAR,部分功能会失效)下载完后自行安装即可。
Unity 与EasyAR结合 新手入门教程_第1张图片

###(三)下载EasyAR SDK 2.2.0 Basic
同样 我们来到EasyAR官网中,找到下载位置:EasyAR
进入后,如下图点击下载
Unity 与EasyAR结合 新手入门教程_第2张图片

###(四)开始创作
#####(1)新建一个Unity3d 项目
我们打开安装好后的Unity 进入后点击上方的"New" 创建自己的第一个项目,如下图所示。
Unity 与EasyAR结合 新手入门教程_第3张图片

#####(2)导入EasyAR SDK
我们进入Unity项目中如下图 ,在红色箭头所指处右键处导入EasyAR SDKUnity 与EasyAR结合 新手入门教程_第4张图片
Unity 与EasyAR结合 新手入门教程_第5张图片
选择之前下载好的EasyAR SDK(自行解压哦),然后点击"打开"等待加载导入Unity 与EasyAR结合 新手入门教程_第6张图片

加载完后如下图,我们点击"Import“即可Unity 与EasyAR结合 新手入门教程_第7张图片

#####(3)开始工作
Import完后,我们会看到Project那边多出来几个文件夹,我们如下图所示找到“EasyAR_Startup

Unity 与EasyAR结合 新手入门教程_第8张图片
将其拖入至上方的Hierarchy视图中
Unity 与EasyAR结合 新手入门教程_第9张图片
同时我们删除场景中的“Main Camera”(为了不和AR相机起冲突)
Unity 与EasyAR结合 新手入门教程_第10张图片
最后保存场景,Ctrl+S 出现如下图,保存至Scenes文件夹下
Unity 与EasyAR结合 新手入门教程_第11张图片
#####(4)注册SDK许可证密钥
我们点击到我们的EasyAR_Startup中,发现面板上Key这块是空的,这里我们就需要去官网上申请密钥[图片上传中…(Key.png-7a4f56-1533045780472-0)]

我们进入到官网SDK许可证找到如下界面,点击添加SDK许可证密钥
Unity 与EasyAR结合 新手入门教程_第12张图片
然后就是一些名称填写,本文章以Android为例,PackageName (Android)格式最好就是 com.xxxx.xxx,记住这边设置的名字,我们之后会用到
Unity 与EasyAR结合 新手入门教程_第13张图片
我们设置好后 点进入刚刚创建好的应用名中,将SDK License Key中的一大串字母全选复制到我们最初场景EasyAR_Startup中的Key里面
Unity 与EasyAR结合 新手入门教程_第14张图片
Unity 与EasyAR结合 新手入门教程_第15张图片

#####(5)关键步骤
此时我们初步的步骤已经全部完成,接下来则是主要部分,我们要实现AR功能,首先得要有个所要识别的对象,这样才能在这个对象基础之上再添加我们想要的各种功能,我们这次主要以最简单例子示例(通过扫描身份证背面来出现一个白色球体)


首先 我们添加ImageTarget来作为我们要识别的对象
如下图所示,我们找到将ImageTarget拖至场景中
Unity 与EasyAR结合 新手入门教程_第16张图片
然后点击场景中的ImageTarget,将其身上的脚本文件移除,如下图
Unity 与EasyAR结合 新手入门教程_第17张图片
我们新建一个脚本,点击Add Component,添加一个C#脚本文件
Unity 与EasyAR结合 新手入门教程_第18张图片
然后对其进行编辑Unity 与EasyAR结合 新手入门教程_第19张图片
将脚本里面所有内容换为如下代码:



using UnityEngine;
using EasyAR;

namespace Sample
{
    public class SampleTargetBehaviour : ImageTargetBehaviour
    {
        protected override void Awake()
        {
            base.Awake();
            TargetFound += OnTargetFound;
            TargetLost += OnTargetLost;
            TargetLoad += OnTargetLoad;
            TargetUnload += OnTargetUnload;
        }

        void OnTargetFound(TargetAbstractBehaviour behaviour)
        {
            Debug.Log("Found: " + Target.Id);
        }

        void OnTargetLost(TargetAbstractBehaviour behaviour)
        {
            Debug.Log("Lost: " + Target.Id);
        }

        void OnTargetLoad(ImageTargetBaseBehaviour behaviour, ImageTrackerBaseBehaviour tracker, bool status)
        {
            Debug.Log("Load target (" + status + "): " + Target.Id + " (" + Target.Name + ") " + " -> " + tracker);
        }

        void OnTargetUnload(ImageTargetBaseBehaviour behaviour, ImageTrackerBaseBehaviour tracker, bool status)
        {
            Debug.Log("Unload target (" + status + "): " + Target.Id + " (" + Target.Name + ") " + " -> " + tracker);
        }
    }
}


返回到Project中,创建一个文件夹名为StreamingAssets( 就这个名字!别改!),并将身份证背面的图片导入进去(把图片拖进去即可)
(没有身份证照片的自己右键另存为一下,后缀名注意哦~)
Unity 与EasyAR结合 新手入门教程_第20张图片
我们继续回到ImageTarget中,将脚本文件中的信息补充完全(如下图设置即可)
Unity 与EasyAR结合 新手入门教程_第21张图片

最后我们再创建一个球体来作为识别后所要呈现的物体
Unity 与EasyAR结合 新手入门教程_第22张图片
修改一下球体的大小ScaleUnity 与EasyAR结合 新手入门教程_第23张图片
再将球体位置移到ImageTarget的上方
Unity 与EasyAR结合 新手入门教程_第24张图片
最后将Sphere球体拖至ImageTarget下面,作为其子物体
Unity 与EasyAR结合 新手入门教程_第25张图片

###(五)运行结果
我们运行一下看看效果如何~
Unity 与EasyAR结合 新手入门教程_第26张图片


这个最简单的小例子我们就大功告成了,当然实际开发的时候直接利用官网上的样包会更加方便 官网例子
有时间的话会对官网例子进行讲解的Unity 与EasyAR结合 新手入门教程_第27张图片




这一期讲的比较详细,可能看的有点累哈~ 下一期我会对安装到安卓手机上的细节加以分析,有什么问题的话 可以互相交流学习 !!!今天就先到这了

你可能感兴趣的:(EasyAR)