Hololens開發(fā)——如何實(shí)現(xiàn)凝視、手勢(shì)和語(yǔ)音交互操作

1、打開Unity,新建項(xiàng)目名為HoloProject,如圖所示。

2、在開發(fā)前需要導(dǎo)入HoloTookit工具包,我使用的是HoloToolkit-Unity-v1.5.8.0版本,先選擇ALL選項(xiàng),然后選擇Import選項(xiàng)。具體步驟如圖所示。

3、導(dǎo)入成功后,我們先保存當(dāng)前場(chǎng)景,取名為Interaction。然后刪除Main Camera,我們找到HoloTookit 中Input資源里的Prefabs,將HololensCamera、InputManger、Cursor和CursorWithFeedback組件拖拽到面板中。具體如圖所示。

4、準(zhǔn)備工作完成后,下面我將分別實(shí)現(xiàn)凝視,手勢(shì)和語(yǔ)音交互的案例實(shí)現(xiàn)。我們?cè)诿姘逯行陆ㄒ粋€(gè)3D Object的Cube,設(shè)置Position參數(shù)中的z為5。

5、我先實(shí)現(xiàn)凝視交互——當(dāng)視線在Cube上時(shí),Cube顏色變成紅色。首先,新建一個(gè)C#文件,取名為ColorShowAction.cs。如圖所示。

雙擊ColorShowAction.cs,寫入相應(yīng)代碼。如圖所示。

寫完后,關(guān)閉vs,在Cube的管理面板上點(diǎn)擊Add Component,輸入ColorShowAction。如圖所示。

這樣我們就完成了凝視交互了,接下來進(jìn)行效果測(cè)試。我們直接在Unity中運(yùn)行程序。當(dāng)我們視線不在Cube上時(shí)它是原來的白色,當(dāng)在它上面時(shí)就變成了紅色。

6、接下來我主要實(shí)現(xiàn)兩種手勢(shì)交互即導(dǎo)航手勢(shì)和操作手勢(shì),分別來實(shí)現(xiàn)旋轉(zhuǎn)和移動(dòng)功能。跟剛才一樣,新建兩個(gè)C#文件分別是MoveAction和RotateAction。雙擊,填寫相應(yīng)代碼。如圖所示。最后將它們加入到Cube上就可以了。

7、最后通過語(yǔ)音來實(shí)現(xiàn)Cube放大和縮小交互。新建一個(gè)ZoomAction.cs,打開并填寫代碼,如圖所示。然后加入到Cube上。

語(yǔ)音還需要KeyWordManager.cs才能工作,在Cube上添加KeyWordManager,然后在Keyword中分別輸入bigger和smaller,Response()中拖入Cube,輸入ChangeScale函數(shù)并輸入相應(yīng)Keyword值。如圖所示。

8、最后需要生成APP,部署到Hololen上或者Hololens模擬器上來操作Cube。首先更改生成設(shè)置,將平臺(tái)切換成WindowStore,目標(biāo)設(shè)備為Hololens,在PlayerSetting上勾選Virtual Reality Supported和Microphone。如圖所示。

然后點(diǎn)擊Build會(huì)生成vs項(xiàng)目,打開該項(xiàng)目,因?yàn)槲以贖ololens上進(jìn)行測(cè)試,所以設(shè)置項(xiàng)目為Realeas,x86,遠(yuǎn)程計(jì)算機(jī),輸入hololens的ip地址。