3D游戏编程与设计11——AR/MR 技术

图片识别与建模

(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;
    }
}

运行效果如图:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值