- 图片识别与建模
- 虚拟按键小游戏
图片识别与建模
Vuforia SDK
由于我用的Unity版本好像不支持Vuforia,所以直接重装了2018.4版,下载时选择需要安装的插件,勾选Vuforia Augmented Reality Support
完成后在GameObject
可以看到Vuforia Engine
一栏
创建证书
照着ppt做,创建证书
点击3D Course,可以得到证书,复制下来。
目标数据库
然后创建目标数据库
上传图片提取特征
下载数据库
从Target Manger页面下载目标数据库,得到一个3D_Course.unitypackage
文件。
创建一个新项目
-
创建一个新项目
-
File -> Build Setting -> Player Settings -> Player,勾选Vuforia Augmented Reality Supported
-
将
3D_Course.unitypackage
import入资源文件夹。 -
将原来的摄像机delete掉,创建一个AR Camera
-
再创建一个ImageTarget
-
在ImageTarget下创建一个子游戏对象,如图中的cube就是等下会显示的模型
给cube添加一个material。 -
在Assets / Resourses,点击VuforiaConfiguration文件,右侧粘贴证书
-
此时查看ImageTarget,可以看到数据库中的panda图片已经自动导入
结果
运行,检测到图片的地方会出现cube
虚拟按键小游戏
添加虚拟按键
点击ImageTarget,在右侧的Advanced
点击Add Virtual Button
出现VirtualButton
先给VirtualButton
加个Plane
,否则看不到按钮的具体位置
制作以下脚本,每点击一下按钮,cube变颜色。绑定到ImageTarget上。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using Vuforia;
public class ButtonEvent : MonoBehaviour, IVirtualButtonEventHandler
{
public VirtualButtonBehaviour[] vbs;
public GameObject cube;
public int index;
void Start()
{
vbs = GetComponentsInChildren<VirtualButtonBehaviour>();
for (int i = 0; i < vbs.Length; i++)
{
vbs[i].RegisterEventHandler(this);
}
index = 0;
cube = GameObject.Find("ImageTarget/Cube");
}
// Update is called once per frame
void Update()
{
}
public void OnButtonPressed(VirtualButtonBehaviour vb)
{
index++;
if (index == 4)
index = 0;
switch (index)
{
case 0:
cube.GetComponent<Renderer>().material.color = Color.white;
break;
case 1:
cube.GetComponent<Renderer>().material.color = Color.red;
break;
case 2:
cube.GetComponent<Renderer>().material.color = Color.yellow;
break;
case 3:
cube.GetComponent<Renderer>().material.color = Color.green;
break;
case 4:
cube.GetComponent<Renderer>().material.color = Color.blue;
break;
}
}
public void OnButtonReleased(VirtualButtonBehaviour vb)
{
}
}
调整Plane和Cube到合适的位置