• 您的位置:首頁 > 新聞動態 > 技術文章

    Hololens的Unity開發入門

    2017/7/10      點擊:

    一、Hololens概述

    Hololens有以下特性

    1、空間映射
    借助微(wēi)軟特殊定製(zhì)的全息處理單(dān)元(HPU),HoloLens 實現了對周邊環境的快速掃(sǎo)描(miáo)和空(kōng)間匹配。這保證了(le) HoloLens能(néng)夠(gòu)準(zhǔn)確地在真實世界表麵放(fàng)置或展現全息圖(tú)形內容,確(què)保了核(hé)心的AR體驗。

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

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

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

    二、開發環境搭建

    開發Hololens之前(qián)需(xū)要準備以下環境(jìng)(以下為我準備的環境)

    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中進行安(ān)裝

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

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

    三、集成HoloToolkit-Unity項目(mù)

    在創建了標(biāo)準 Unity 項目之後,我們需要集成微軟官方提供(gòng)的 HoloToolkit-Unity 項目。HoloToolkit-Unity 項目是微軟(ruǎn)官方的開源項目,用於幫助開發(fā)者(zhě)快速開發 HoloLens 應用,能夠快速為項目集(jí)成基本輸入、空間映射和場景匹配等特性。

    關於該項(xiàng)目的詳細介紹,可以參考微軟的開源(yuán)項目https://github.com/Microsoft/HoloToolkit-Unity

    集成步(bù)驟(zhòu)

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

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

    3、在自己的工程中使用HoloToolkit-Unity package

    新建自己的Unity工程,Assets -> Import Package -> Custom Package 選擇剛才導出的HoloToolket-Unity package, 導入成功後,可以看到HoloToolkit菜單

    四、構建場景

    1、新建(jiàn)空白場景後,我們需要刪除原有的 Main Camera 對(duì)象,同時(shí)從 HoloToolkit/Utilities/Prefabs 目錄中拖拽一個 Main Camera Prefab 組件到場(chǎng)景(jǐng)中

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

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

    4、創建一個Cube對象並創(chuàng)建一個新的C#腳本,命名為 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 腳本的功能為隨機更換對象的材(cái)質顏色,遵(zūn)循 GestureManager.cs 中(zhōng)預設的OnSelect消息名稱
    進入 Input 組件檢視選項卡,為(wéi) KeywordManager.cs 組(zǔ)件配置語音(yīn)命令。語音命令觸發時(shí)將會執行相應的組件(jiàn)行為。 本例中,當我說出“ test”時,觸發Cube的 OnSelect 方法,來隨機改變 Cube 顏色。

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

    五、編譯運行

    1、生成vs工程

    2、打開(kāi)vs工程,打開microphones權限(xiàn),設置在模擬器中運行

    3、運行,如下為在Hololens模(mó)擬器上的(de)運(yùn)行效果

    按空(kōng)格鍵選(xuǎn)中cube,或者說出指令(lìng)"test", 觸發OnSelect事(shì)件,cube的顏色(sè)將隨機發生變化


    密桃直播-密桃直播手机版下载-蜜桃直播app下载安装-蜜桃直播官方版下载