制作简单的AR小游戏:
1、 图片识别与建模
2、 虚拟按键小游戏
一.什么是AR
AR是Augmented Reality的缩写,中文翻译为现实增强(扩增实境)。AR是一种实时地计算摄影机影像的位置及角度并加上相应图像的技术。也就是说,AR就是将虚拟信息放在现实中展现,并且让人和虚拟信息进行互动。AR通过技术上的手段能够将现实与虚拟信息进行无缝对接。将在现实中不存在的事物构建一个三维场景予以展现,与现实生活相互衔接。
二.用unity制作AR小游戏
本AR小游戏适用于电脑有前置摄像头 :)
首先要在unity上部署Vuforia。Vuforia官网地址 1.注册账号
进入官网,点击右上角的Register进行注册
2.注册完毕后,点击Develop->Get Development Key
填入License Name(我设置为AR Game),点击confirm后就能看到我们创建的应用了:
点进去可以看到我们的License Key:
3.下面添加图片到数据库。
点击Develop->Target Manager->Add Database,命名好之后可以看到新建的数据库:
点进去,点击Add Target添加图片:
Width的单位是米,我设置为0.1。添加完图片之后,网站会给图片一个星级(五星最高),星级越高说明图片越清晰、越适合做AR的背景图。可以去百度图片搜索AR图。
点击Download Database,选择Unity Editor:
我们会得到一个unity包。
4.接下来,配置unity。新建项目后,点击File->Build Settings,再点击图示的Player Settings:
右侧会跳出一个设置页,在XR Settings处,勾选VR Supported、SDK只选择Vuforia:
如果没有Vuforia,则点击下方的下载按钮,下载安装即可。
安装完成后,项目多了一个Resources目录,里面有一个VuforiaConfiguration。
点击VuforiaConfiguration,把我们第二步得到的license key复制到右侧的App License Key一栏:
下面,导入我们第三步下载的包导入项目,可以直接拖进来。
5.在Hierachy处点击右键,可以看到Vuforia Engine,创建一个Vuforia Camera和Image Target:
设置image target,Database自动变成了我们导入的下载的数据库,设置image target为我们找好的AR背景图:
再点击Add Virtual Button,可以看到Image Target多了两个子对象button。修改这两个button的位置和名字以作区分:
删掉main camera,把Vuforia Camera调整角度和高度,对准Image Target。效果图如下:
这两个按钮是AR游戏的控制按钮,下面我们要添加一个虚拟对象。新建一个Cube,将其拖到Image Target的子对象中,并给它设置合适的位置和大小:
OK,来到最后一步,用脚本来给按钮添加事件。
新建Button.cs,挂载到Image Target上:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Vuforia;
public class Button : MonoBehaviour, IVirtualButtonEventHandler
{
private GameObject cube;
void Start()
{
VirtualButtonBehaviour[] vbs = GetComponentsInChildren<VirtualButtonBehaviour>();
for (int i = 0; i < vbs.Length; ++i)
{
vbs[i].RegisterEventHandler(this);
}
cube = transform.Find("Cube").gameObject;
}
public void OnButtonPressed(VirtualButtonBehaviour vb)
{
switch (vb.VirtualButtonName)
{
case "b1":
cube.transform.position = new Vector3(1f, 0f, 0f);
break;
case "b2":
cube.transform.position = new Vector3(-1f, 0f, 0f);
break;
}
Debug.Log("OnButtonPressed: " + vb.VirtualButtonName);
}
public void OnButtonReleased(VirtualButtonBehaviour vb)
{
switch (vb.VirtualButtonName)
{
case "b1":
break;
case "b2":
break;
}
Debug.Log("OnButtonReleased: " + vb.VirtualButtonName);
}
}
我们的AR游戏就制作完成啦!
成品图:
前置摄像头下出现了小正方体,通过按左右按钮,我们可以让它左右移动。
最后,放上github项目地址