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