图片识别与建模
(1)打开 vuforia 官网,注册登录后可见如下开发管理界面。
(2)创建证书,用于获取 License Key。Vuforia 在 Unity 中需要相应的 Key 对 SDK 进行配置,否则无法使用。点击 Get Development Key。
(3)创建目标数据库,用于对所有 Target 及其特征数据进行管理和保存。点击 Add Database。
(4)Vuforia 要求将特定识别的目标提前上传至数据库进行特征提取。目标有多种类型,此处选择 image,以对单幅图像进行识别。点击 Add Target,下载目标特征数据并作为资源导入 unity 项目。
(5)创建 Unity 新项目,下载 Unity 的 sdk 包。打开新项目,点击 File -> Building Settings -> Player Setting,勾选 XR Settings 中的 Vuforia Augmented Reality。
(6)以 unity package 形式从 Target Manger 页面下载目标数据库并导入项目。
(7)删除场景中原有的摄像机,从 ARCamera 的检视面板中打开 Vuforia 配置文件,将证书管理器中获取的Key写入配置文件。
(8)新建一个 ImageTarget,修改 Image Target Behavior 属性如下。在该对象下新建一个 cube,运行项目,在识别到卡片时会将其展示出来。
虚拟按键小游戏
点击 ImageTarget 对象,新建虚拟按钮,在虚拟按钮中添加一个 Plane,用于对虚拟按钮进行渲染。
编写脚本设置点击事件,当点击按钮时,cube 会改变颜色。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using Vuforia;
public class button : MonoBehaviour, IVirtualButtonEventHandler
{
public VirtualButtonBehaviour[] vbs;
public GameObject cube;
public GameObject but;
public Color[] colors;
public int index;
void Start()
{
vbs = GetComponentsInChildren<VirtualButtonBehaviour>();
for (int i = 0; i < vbs.Length; i++)
{
vbs[i].RegisterEventHandler(this);
}
index = 0;
colors = new Color[5];
colors[0] = Color.white;
colors[1] = Color.red;
colors[2] = Color.yellow;
colors[3] = Color.blue;
colors[4] = Color.green;
cube = GameObject.Find("ImageTarget/Cube");
but = GameObject.Find("ImageTarget/VirtualButton/Plane");
}
void Update()
{
}
public void OnButtonPressed(VirtualButtonBehaviour vb)
{
but.GetComponent<Renderer>().material.color = Color.white;
if (index == 5)
index = 0;
cube.GetComponent<Renderer>().material.color = colors[index++];
}
public void OnButtonReleased(VirtualButtonBehaviour vb)
{
but.GetComponent<Renderer>().material.color = Color.white;
}
}
运行效果如图: