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