• Hololens的Unity開發入門

    2017/7/10      點擊:

    一(yī)、Hololens概述

    Hololens有以下特性

    1、空間映射
    借助微軟特殊定製的全息處理單元(HPU),HoloLens 實現了(le)對周邊環境的快速掃描和空間匹配。這保證了 HoloLens能(néng)夠準(zhǔn)確地在(zài)真實世界表麵放置或展現全息圖形內容,確保了核心的AR體驗。

    2、場景匹配
    HoloLens 設備能存儲並識(shí)別環境信息,恢複(fù)和保持不同場景(jǐng)中的全(quán)息圖像對象。當(dāng)你離開當前房間再回來時,會發現原有放置的全(quán)息圖像均會在正確的位置(zhì)出現。

    3、自(zì)然交互
    HoloLens 主要交互方式為(wéi)凝(níng)視(Gaze)、語音(Voice Command)和(hé)手勢(Gesture),這構成了 HoloLens的基本輸入要素。同時(shí)傳統的鍵盤鼠標等設備也被支持,自然(rán)的交互(hù)方式更貼(tiē)近人類習(xí)慣,提高(gāo)了交(jiāo)互(hù)效率。

    4、 通用應用
    HoloLens 平台(tái)的操作係統為(wéi) Windows Holograpic,同樣基於 Windows 10 定製。所以Windows 10 UWP 通用應用程(chéng)序可以順利地在 HoloLens 上運(yùn)行。這不僅降(jiàng)低了研發和遷移成本,也讓開發效率能夠大幅提升。當(dāng)然,說了很多 HoloLens 獨特的特性(xìng)和(hé)優點後,HoloLens 開發者版本也存(cún)在一些亟待解決的問題,包括視野較(jiào)窄、凝視體驗不佳、抗光線幹擾弱和重量續航等問題。 但瑕不掩瑜,HoloLens 帶來了真正(zhèng)的混合現實體驗,擁有著強烈的衝擊感,未(wèi)來將大有作為。

    二、開(kāi)發環境搭建(jiàn)

    開(kāi)發Hololens之前需要準備以下環境(以下為我準備的環境)

    1、Visual Studio 2015 Update 3

    2、HoloLens Emulator (build 10.0.14393.0)

    3、Unity HoloLens Technical Preview

    4、Windows 10 SDK (10.0.14393.33) VS中進行安裝

    更加詳細的環境配(pèi)置可參考(kǎo)

    https://developer.microsoft.com/en-us/windows/holographic/install_the_tools

    三、集成HoloToolkit-Unity項目

    在創建了標準 Unity 項目之後,我們需要(yào)集成微軟官方提供的 HoloToolkit-Unity 項目(mù)。HoloToolkit-Unity 項(xiàng)目是微軟官方的開源項目,用於幫助(zhù)開發者快速開發 HoloLens 應用,能夠快速為項目(mù)集成(chéng)基本輸入、空(kōng)間映射和(hé)場景匹配等特性。

    關於(yú)該項目的詳(xiáng)細(xì)介紹(shào),可以參考微(wēi)軟的開源項目https://github.com/Microsoft/HoloToolkit-Unity

    集成步驟

    1、下載HoloToolkit-Unity代碼 https://github.com/Microsoft/HoloToolkit-Unity.git

    2、使用unity打開HoloToolkit工程,右擊Assets,導出(chū)Package

    3、在自己的工程中使(shǐ)用(yòng)HoloToolkit-Unity package

    新(xīn)建自己的(de)Unity工程,Assets -> Import Package -> Custom Package 選(xuǎn)擇剛才導出的HoloToolket-Unity package, 導入成功後,可以(yǐ)看(kàn)到HoloToolkit菜單

    四、構建場(chǎng)景

    1、新建空白場景後,我(wǒ)們需要刪除原有的 Main Camera 對象,同時從(cóng) HoloToolkit/Utilities/Prefabs 目錄中拖拽一個 Main Camera Prefab 組(zǔ)件到場(chǎng)景中

    2、點擊“ Create Empty” 創建一個空遊戲對象,並將其(qí)命名為 Input,為 Input 對象添加核心腳本組件,分別為 GazeManager.cs、 GestureManager.cs、 HandsManager.cs 和KeywordManager.cs。這樣就集成(chéng)了凝視(shì)、手勢和語(yǔ)音命令三大(dà)核心特性。對於凝視射線、手勢識別和語音命令功能,均建議使用單(dān)例來進行管理,這樣可以避免功能混亂,方便管理。同時為(wéi)凝視設(shè)置可(kě)視化的指針,可以提(tí)高用戶的交互體驗和效(xiào)率。

    3、從 HoloToolkit/Input/Prefabs/ 目(mù)錄下拖拽 CursorWithFeedback Prefab 組件到(dào)場景(jǐng)中(zhōng)。這樣當凝視在(zài)全息對象時,其表麵會出現(xiàn)可視化凝視組件。 當用戶手勢被識別到時(shí),會出現一個(gè)藍色的手掌圖像,能夠貼心的告訴用戶(hù)可以操作(zuò)了。

    4、創建一個(gè)Cube對象並創建一個新的C#腳(jiǎo)本,命名(míng)為 HoloTest.cs。

    [csharp] view plain copy
    1. using UnityEngine;  
    2. using System.Collections;  
    3.   
    4. public class HoloTest : MonoBehaviour {  
    5.   
    6.     // Use this for initialization  
    7.     void Start () {  
    8.       
    9.     }  
    10.       
    11.     // Update is called once per frame  
    12.     void Update () {  
    13.       
    14.     }  
    15.   
    16.     public void OnSelect()  
    17.     {  
    18.         gameObject.GetComponent().material.color = new  
    19.             Color(Random.Range(0, 255) / 255f, Random.Range(0, 255) / 255f,  
    20.             Random.Range(0, 255) / 255f);  
    21.     }  
    22. }  
    5、HoloTest.cs 腳本的功能(néng)為隨機更換對(duì)象的材質(zhì)顏色,遵(zūn)循 GestureManager.cs 中預設的OnSelect消息名稱
    進入 Input 組件檢視選項卡,為 KeywordManager.cs 組件配置語音命令。語音命令觸發時將會執行相應的組件行為。 本例中,當我說出“ test”時,觸發Cube的 OnSelect 方法,來隨機改變(biàn) Cube 顏色。

    6、為了滿足HoloLens的需求,我們需(xū)要在 Player Settings 裏麵開啟Virtual Reality Support,並在下拉(lā)列表中選中Windows Holographic,隻有(yǒu)這樣(yàng) HoloLens 才會將此應用渲染為3D應(yīng)用,這(zhè)一點十分關鍵。

    五(wǔ)、編譯運行

    1、生成vs工程

    2、打開vs工程,打開microphones權限,設置在模擬器(qì)中運行

    3、運行,如下為在(zài)Hololens模擬器上的運行效果

    按空格鍵選中cube,或者說出指令"test", 觸發OnSelect事件,cube的顏色將隨機發生變化


    91网站入口_91视频导航_91短视频在线_91视频在线免费观看