3D游戏编程设计作业十

一、AR/MR介绍

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

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

二、作业与练习

1、 图片识别与建模

2、 虚拟按键小游戏

Vuforia配置过程

成功注册登陆后可以进入证书激活界面,证书命名随意

3D游戏编程设计作业十_第1张图片

 

确认后会成功返回一个证书密钥,单机可以粘贴密钥

3D游戏编程设计作业十_第2张图片

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

3D游戏编程设计作业十_第3张图片

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

3D游戏编程设计作业十_第4张图片

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

3D游戏编程设计作业十_第5张图片

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

3D游戏编程设计作业十_第6张图片

 

下载Vuforia扩展包

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

3D游戏编程设计作业十_第7张图片

导入下载的databases

3D游戏编程设计作业十_第8张图片

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

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

3D游戏编程设计作业十_第9张图片

图片识别与建模

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

3D游戏编程设计作业十_第10张图片

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

3D游戏编程设计作业十_第11张图片

 

虚拟按键小游戏

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

3D游戏编程设计作业十_第12张图片

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

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();
        for (int i = 0; i < vbs.Length; i++) {
            vbs[i].RegisterEventHandler(this);
        }
        index = 0;
    }


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

    }

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

}

运行效果如下

3D游戏编程设计作业十_第13张图片

3D游戏编程设计作业十_第14张图片

项目见github

你可能感兴趣的:(3D游戏编程设计作业十)