3D游戏编程设计做业十

1、AR/MR介绍

加强现实(Argumented Reality (AR))是一种将真实世界信息和虚拟世界信息“无缝”集成的新技术,是把本来在现实世界的必定时间空间范围内很难体验到的实体信息(视觉信息,声音,味道,触觉等),经过电脑等科学技术,模拟仿真后再叠加,将虚拟的信息应用到真实世界,被人类感官所感知,从而达到超越现实的感官体验。git

混合现实(Mixed reality (MR)) 有时被称为超现实(hybrid reality),是真实和虚拟世界的合并,产生新的可视化环境,物理和数字对象实时共存且在其中交互。混合现实不只发生在物理世界或虚拟世界中,而是融合了现实和虚拟现实,经过身临其境的技术包含加强现实和加强虚拟。github

2、做业与练习

一、 图片识别与建模数据库

二、 虚拟按键小游戏ui

Vuforia配置过程

成功注册登录后能够进入证书激活界面,证书命名随意this

 

确认后会成功返回一个证书密钥,单机能够粘贴密钥3d

接下来点击Target Manager建立一个目标数据库code

为建立好的数据库添加一个特定的识别目标,我此处选择的是一个图片对象对象

添加完成后查看图片特征信息提取结果blog

接下来从官网下载生成的数据包,在unity项目中导入游戏

 

下载Vuforia扩展包

在Unity打开Build Settings,打开player settings,对XR Settings进行配置

导入下载的databases

接下来删去原来的Main Camera,新建一个AR Camera

接下来将注册好的License Key和数据库进行导入

图片识别与建模

接下来建立一个Image Target,配置以前导入的database

接下来在Image target下挂载一个要识别的Object,此处挂载了一个正方体对象,直接运行

 

虚拟按键小游戏

为Image Target添加一个虚拟按键,调整虚拟按钮的大小和位置后效果以下

我此处实现了一个点击虚拟按钮能够改变物体颜色的功能,代码以下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using Vuforia;

public class ChangeColor : MonoBehaviour, IVirtualButtonEventHandler
{
 
    public int index;
    public GameObject cube;
    public GameObject btn;
    public Color[] colors = {Color.blue, Color.red, Color.green, Color.black};

    void Start() {
        VirtualButtonBehaviour[] vbs = GetComponentsInChildren<VirtualButtonBehaviour>();
        for (int i = 0; i < vbs.Length; i++) {
            vbs[i].RegisterEventHandler(this);
        }
        index = 0;
    }


    public void OnButtonPressed(VirtualButtonBehaviour vb) {
        index++;
        btn.GetComponent<MeshRenderer>().material.color = Color.red;
        cube.GetComponent<Renderer>().material.color = colors[index%4];

    }

    public void OnButtonReleased(VirtualButtonBehaviour vb) {
        btn.GetComponent<MeshRenderer>().material.color = Color.white;
    }

}

运行效果以下

项目见github