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