Skip to main content
 首页 » 资源教程 » Vuforia教程

使用Vuforia和Unity创建AR Android APP

2016年09月09日 19:15:1022910

我们会使用名为"Vuforia"增强现实SDK来创建这个应用.

 

下面的软件会在教程中用到:

Vuforia 5

Unity 3D 5.x

Cardboard SDK version 0.5.x

Android Studio SDK tools

 

简介:

有多种方法来制作增强现实的apps.我们会使用基于标记的方法来为手机设备制作AR应用.

 

Marker/Image Target :这是一个被手机设备摄像头识别和跟踪的图片.一旦识别出来,内容会被显示出来.

 

这个教程有三个部分:

1.Vuforia起步

2.集成到Unity

3.Demo

 

1.Vuforia起步

为了开始我们到Vuforia’s Developer Portal 创建一个账户.

为了在Unity中使用Vuforia,我们需要做两件事:

首先为我们的应用创建一个license key

license key是唯一的ID,Unity中被需要来使用Vuforia创建应用.为了创建license key,我们需要到"Develop >> License Manager",并选择"Add License Key"

 

我们填入信息,选择"Next",然后"Confirm",会将我们带到"License Manager"页面,应用的名称"ARDemo"会显示出来.

 

一旦我们选择"ARDemo",我们会得到license key,这个key会在之后在Unity中使用.

 

2.创建数据库和一个图片识别

下一步是设置一个图片作为目标.我们前往"Develop >> Target Manager",并选择"Add Database",填入信息.

 

接下来我们需要添加图片到新创建的数据库.我们选择数据库,并点击"Add Target".Vuforia支持多种目标,例如单一的图片\圆柱形\立方体\3D图片等.对于这个教程,我们使用单一的图片目标,

 stones_hires图片.可以选择任意值的宽度,50.

 

上传后,目标会被添加,我们有一个"Download Dataset"选项.

 

这里有一点要注意的是"Rating",一个好的rating意味着它可以被用于跟踪,相反一个坏的rating意味着图片没有足够特征点.

 

我们也可以通过选择"stones_hires >> Show features"来查看图片的特征点.

 

通过选择"Download Dataset >> Unity editor",下载数据集.

 

这会生成一个包含可跟踪信息的Unity package,关于这个可跟踪的数据库.

 

集成到Unity

 

开始创建一个名为"ARDemo"Unity3D项目.

接下来,我们会导入Vuforia Unity packages.这可以通过"Assets >> Import Package >> Custom Package"完成.我们会有两个packages,一个与我们的数据集(Image_Targets.unitypackage)一致,另一个与Vuforia 5 SDK for Unity (vuforia-unity-5-0-5.unitypackage)一致(可以在here找到).

 

现在添加一些3D模型到我们的项目.让我们进入"Window >> Asset Store".我们可以找到一个名为"Red Samurai"的模型.我们需要登录我们的Untiy账号来下载这个模型.

 

接下来,我们会添加ARCamera到我们的场景."ARCamera"是一个Augmented Reality camera来自Vuforia,和常规的相机类似.我们可以在"Assets >> Vuforia >> Prefabs"下找到,并拖拽到场景中,坐标x=0,y=0,z=0.由于我们已经有了ARCamera,我们可以删除掉Main Camera.

 

为了使ARCamera运行,我们要添加App License Key.Inspector面板上,我们会粘贴我们之前从Vuforia’s License Manager上收到的唯一的key.

 

这个时候,如果我们按下Unity Editor中的Play按钮,我们应该能在Game View中看到我们的WebCam.

 

接下来,让我们添加ImageTarge到场景中.可以在"Assets >> Vuforia >> Prefabs"下找到.让我们在场景中x=0,y=-50,z=0下添加.现在在Image TargetInspector面板下,我们需要做一些改变."Image Target Behaviour (script)",我们需要改变"Data Set""Image_Targets",以及改变"Image Target""stones_hires".一旦完成,stone_hires图片会显示在我们的Scene View.

 

接下来,让我们拖拽Samurai到Scene.可以在"Assets >> prefab >> samuzai"下找到.samurai出现在ImageTarget之上,需要made a child of ImageTarget,然后当ImageTarget被一个手机的摄像头检测到,这个target的所有children会一起出现.samuzai的比例需要改变为x=0.5,y=0.5,z=0.5.

 

现在我们需要激活Image_Targets Dataset.这可以通过选择"ARCamera"来实现,然后在Inspector面板,"Dataset Load Behaviour (Script)",我们需要选择"Load Data Set Image_Targets",然后"Activate".

 

这时候,如果我们选择"Run",将摄像头指向我们打印的图片,我们应该能看到samurai,并做着"Attack animation",这是默认的动画.

 

这几乎快完成了,我们保存场景为"ARDemo".

 

最后一步是为Android建立项目.我们需要到"File >> Build Settings".我们需要通过选择"Add Current"添加当前的场景.然后,我们需要选择一个平台(Android),这里我们有几个选项.

 

  • Google Android Project:这允许我们将当前的Unity项目到Android Studio,这样可以被编辑和使用来添加更多的元素.
  • Development Build:启动这项会开启Profiler功能,同样使得Autoconnect Profiler和Script Debugging选项可用.

 

在按下Build按钮,我们需要在"Player Settings"选项做出更多的改变.这里,公司的名称需要被改变.接下来,我们需要改变"Other Setting"下的Bundle Identifier.

评论列表暂无评论
发表评论