Hololens的Unity開發入門(mén)
一、Hololens概述
Hololens有以下特性
1、空間映(yìng)射
借(jiè)助微軟特殊(shū)定製的全息(xī)處理單元(HPU),HoloLens 實現了對周邊環境的快速掃描和空間匹配。這保證了 HoloLens能夠準確地在真實世界表麵放置或展現全息圖形內容,確保了核心的AR體驗。
2、場景匹配
HoloLens 設備能存儲並識別環境信息,恢複和保持(chí)不同場景中的全息圖(tú)像對象。當你(nǐ)離開當前房間再回來時,會發現(xiàn)原(yuán)有放置的全(quán)息圖像均會(huì)在正確的位置出現。
3、自然交互
HoloLens 主要交互方式為(wéi)凝視(Gaze)、語音(Voice Command)和手(shǒu)勢(Gesture),這構成了 HoloLens的基本輸入要素。同時傳統的鍵盤鼠標等設備也(yě)被支持,自然的交(jiāo)互方式更(gèng)貼近人類習慣(guàn),提高了交(jiāo)互效率。
4、 通用應用
HoloLens 平台的操作係統(tǒng)為 Windows Holograpic,同樣基於 Windows 10 定製。所以Windows 10 UWP 通用(yòng)應用程序可以(yǐ)順利地在(zài) HoloLens 上運行。這不僅降低了研發和遷移(yí)成本,也讓開發效率能夠大幅提升。當然,說了(le)很多(duō) HoloLens 獨特的(de)特性和(hé)優點(diǎn)後,HoloLens 開發者版本也存在一些亟待解決的問題(tí),包括視野較(jiào)窄、凝視體驗不佳、抗光線幹擾弱和重量續航等(děng)問題。 但瑕不掩(yǎn)瑜,HoloLens 帶(dài)來了真正的混合現實體驗,擁有(yǒu)著強烈的衝擊(jī)感,未來將大有作為。
二、開發環境搭建
開發Hololens之前需要準備以下環(huán)境(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中進行安裝
更加(jiā)詳細的環(huán)境(jìng)配置可參考
https://developer.microsoft.com/en-us/windows/holographic/install_the_tools
三(sān)、集成HoloToolkit-Unity項(xiàng)目
在創(chuàng)建了標準 Unity 項目之後,我們需要集成微軟官方提供的 HoloToolkit-Unity 項目(mù)。HoloToolkit-Unity 項目(mù)是微軟官方(fāng)的開源項目,用(yòng)於幫助開發者(zhě)快速(sù)開發 HoloLens 應用,能(néng)夠快(kuài)速為項目集成(chéng)基(jī)本輸入、空間映射和場景匹(pǐ)配等特性。
關於該項目的詳細介紹,可以參考微軟的開源項目(mù)https://github.com/Microsoft/HoloToolkit-Unity
集(jí)成步驟
1、下載HoloToolkit-Unity代碼 https://github.com/Microsoft/HoloToolkit-Unity.git
2、使用unity打開HoloToolkit工程,右擊(jī)Assets,導出Package
3、在自己的工程(chéng)中使用HoloToolkit-Unity package
新建(jiàn)自己(jǐ)的Unity工程,Assets -> Import Package -> Custom Package 選擇剛才導出的HoloToolket-Unity package, 導入成功後,可以看到HoloToolkit菜單
四、構建場景
1、新建空白場景後,我(wǒ)們需要刪除原有(yǒu)的 Main Camera 對象,同時從 HoloToolkit/Utilities/Prefabs 目錄中拖拽一個 Main Camera Prefab 組件到場景中
2、點擊“ Create Empty” 創建一個空遊戲對象(xiàng),並將其命名為 Input,為 Input 對象(xiàng)添(tiān)加核心腳本組件,分別(bié)為 GazeManager.cs、 GestureManager.cs、 HandsManager.cs 和KeywordManager.cs。這樣就集成了凝視、手(shǒu)勢和語音命令三大核心特性。對於凝(níng)視射線(xiàn)、手勢識別和語音命令功(gōng)能,均建議使(shǐ)用單例來進行管理,這樣可以避免功能混亂,方便管理。同(tóng)時為凝視(shì)設置可視(shì)化的指針,可以提高用戶的交互體驗和效率。
3、從 HoloToolkit/Input/Prefabs/ 目錄下拖拽 CursorWithFeedback Prefab 組件到場景(jǐng)中。這樣當凝視在全(quán)息對象時,其表麵會出現可視化凝(níng)視組件。 當用戶手勢被識別到時,會出(chū)現一個藍色的手掌圖像,能夠貼心(xīn)的告訴(sù)用戶可以操作了。
4、創建一個Cube對象並創建一個新的C#腳本(běn),命名為 HoloTest.cs。
- using UnityEngine;
- using System.Collections;
- public class HoloTest : MonoBehaviour {
- // Use this for initialization
- void Start () {
- }
- // Update is called once per frame
- void Update () {
- }
- public void OnSelect()
- {
- gameObject.GetComponent().material.color = new
- Color(Random.Range(0, 255) / 255f, Random.Range(0, 255) / 255f,
- Random.Range(0, 255) / 255f);
- }
- }
進入 Input 組(zǔ)件檢視選項(xiàng)卡,為 KeywordManager.cs 組件配(pèi)置語音命令。語(yǔ)音命令(lìng)觸發時將會執行相應的組件行為。 本例(lì)中,當我說出“ test”時,觸發Cube的 OnSelect 方法,來隨機改變 Cube 顏色。
6、為了滿足HoloLens的(de)需(xū)求,我們需要在 Player Settings 裏麵開啟Virtual Reality Support,並在下拉列表中選中Windows Holographic,隻有這樣 HoloLens 才會將(jiāng)此應用渲染為3D應用,這一(yī)點十分關(guān)鍵(jiàn)。
五、編譯運行
1、生成(chéng)vs工程
2、打開vs工程,打開microphones權限,設置在(zài)模(mó)擬器中運行
3、運(yùn)行,如下為在Hololens模擬器上的運行效果
按空格(gé)鍵(jiàn)選中cube,或者說出指令"test", 觸發OnSelect事件,cube的顏色將隨機發生變化(huà)
- 上一篇:Unity3d HoloLens 開發 (VS2015) 2017/7/31
- 下一篇:微軟HoloLens 功能全麵(miàn)講解 2017/7/10
