本文是我的視頻教程《HTC VIVE交互開發(fā)實(shí)例教程》的節(jié)選文字版喜喂,更多VRTK實(shí)例教程可參見蠻牛教育首頁(yè)
VRTK的配置是使用該套工具集進(jìn)行開發(fā)的第一步,本文以Asset Store版VRTK作為演示竿裂,最新版本為3.2.1玉吁,配置過(guò)程如下:
新建一個(gè)unity項(xiàng)目。
-
導(dǎo)入SteamVR Plugin腻异,在彈出的SteamVR Setting對(duì)話框中選擇"Accept All"进副。
-
導(dǎo)入VRTK。
在層級(jí)面板(Hierarchy)中悔常,首先刪除場(chǎng)景自帶的MainCamera影斑,這是因?yàn)楹罄m(xù)導(dǎo)入的SteamVR預(yù)制體會(huì)自帶一個(gè)Camera,為了保證場(chǎng)景中有且只有一個(gè)攝像機(jī)机打,故刪除矫户,然后保存場(chǎng)景。
-
新建一個(gè)空的GameObject(快捷鍵為Ctrl+Shift+N)残邀,掛載VRTK_SDK_MANAGER腳本皆辽,屬性配置暫且不管柑蛇。(建議此物體亦命名為VRTK_SDK_MANAGER)。
-
在其下新建一個(gè)空GameObject(快捷鍵為Alt+Shift+N)驱闷,作為VRTK_SDK_MANAGER的子物體耻台,同樣建議命名為VRTK_SDK_SETUP,在其上掛載VRTK_SDK_SETUP腳本遗嗽。
-
在Project面板中展開SteamVR文件夾粘我,在Prefab文件夾下找到預(yù)制體[CameraRig],將其拖到VRTK_SDK_SETUP下痹换,作為其子物體征字。
-
向上選中VRTK_SDK_SETUP,在檢視面板中娇豫,找到"SDK Selection"下的"Quick Select"屬性旁邊有一個(gè)SDK列表匙姜,這里列出了VRTK所能支持的VR SDK種類,包括Daydream冯痢、Oculus等氮昧,值得注意的是列表中會(huì)有一個(gè)"Simulator"元素,因?yàn)閂RTK提供了模擬器調(diào)試支持浦楣,所以如果選中此元素袖肥,則可以開啟模擬器調(diào)試模式,開發(fā)者可以使用鍵盤鼠標(biāo)配合進(jìn)行一些簡(jiǎn)單的VR交互調(diào)試振劳。此項(xiàng)目中我們使用的是SteamVR椎组,故選擇對(duì)應(yīng)元素。選中以后历恐,Actual Objects欄下的相關(guān)屬性隨即被自動(dòng)填充寸癌,這是VRTK與SteamVR交互用到的相關(guān)組件引用。
-
再次向上弱贼,選擇VRTK_SDK_MANAGER蒸苇,在檢視面板中,找到Setups欄吮旅,這是SDK的配置列表溪烤,點(diǎn)擊底部的加號(hào),會(huì)為配置列表添加元素鸟辅,將剛才我們配置好的VRTK_SDK_SETUP拖到剛添加的卡槽里氛什,即完成了關(guān)于使用SteamVR作為SDK被VRTK調(diào)用的配置過(guò)程,此時(shí)可以進(jìn)行簡(jiǎn)單的測(cè)試查看匪凉。
-
進(jìn)行左右控制器的配置枪眉。在VRTK_SDK_MANAGER下,添加兩個(gè)空物體再层,分別命名為L(zhǎng)eftController和RightController贸铜。同時(shí)將兩個(gè)物體選中堡纬,為他們添加VRTK_ControllerEvents組件,用來(lái)向系統(tǒng)發(fā)送手柄控制事件蒿秦,你可以在相關(guān)的屬性下面設(shè)置某個(gè)特定按鍵觸發(fā)所要使用的動(dòng)作烤镐,比如抓取動(dòng)作觸發(fā)的按鍵,如果不想使用默認(rèn)的Grip Button按下時(shí)觸發(fā)棍鳖,可以將Grab Toggle Button對(duì)應(yīng)的動(dòng)作改為Trigger Press炮叶。
-
實(shí)現(xiàn)讓手柄發(fā)射指針。這里我們以為左手手柄添加直線型指針為例渡处,選擇要發(fā)射指針的Controller镜悉,為其添加VRTK_Pointer組件,此時(shí)還需要借助指針渲染器來(lái)定義指針的外觀医瘫,如果需要直線型射線指針侣肄,則添加VRTK_StraightPointerRenderer組件,如果需要曲線型指針醇份,則添加VRTK_BezierPointerRenderer組件稼锅。在相關(guān)組件添加完畢之后,將VRTK_StraightPointerRenderer拖到其上的VRTK_Pointer下的Pointer Renderer屬性中僚纷。
-
重新選中VRTK_SDK_MANAGER矩距,在檢視面板中有Left Controller和Right Controller兩個(gè)屬性,這時(shí)將配置好的LeftController和RightController兩個(gè)物體分別拖到對(duì)應(yīng)的屬性中怖竭。
-
實(shí)現(xiàn)瞬移剩晴。在VRTK_SDK_MANAGER下添加子物體,命名為PlayArea侵状,在其上添加VRTK_BasicTeleport腳本即可實(shí)現(xiàn)瞬移(如圖12),此時(shí)需保證實(shí)現(xiàn)瞬移的Controller上的VRTK_POINTER腳本的Enable Telepot屬性被勾選(如圖13)毅整。在場(chǎng)景中添加一個(gè)Plane進(jìn)行測(cè)試趣兄,由于瞬移基于射線碰撞檢測(cè),故需保證實(shí)現(xiàn)瞬移的區(qū)域有Collider悼嫉,如BoxCollider等艇潭。
點(diǎn)擊Play進(jìn)行測(cè)試,至此我們就實(shí)現(xiàn)了配置VRTK的全過(guò)程戏蔑。
總結(jié):
不同版本的VRTK蹋凝,其配置過(guò)程會(huì)有所區(qū)別,對(duì)于具體版本的設(shè)置总棵,可以在每個(gè)版本自帶文檔中找到鳍寂,例如此版本的配置介紹可在VRTK文件夾下的README.pdf文檔中的“Using VRTK in your own project
”小節(jié)中找到。-
關(guān)于如何查看VRTK版本情龄,可以通過(guò)Window->VRTK->Surpport Info進(jìn)行查看迄汛,如圖13捍壤。
由以上步驟可見,VRTK的配置過(guò)程簡(jiǎn)單卻繁瑣鞍爱,在日常開發(fā)中鹃觉,開啟一個(gè)VRTK項(xiàng)目,總是要重新配置這個(gè)過(guò)程睹逃,希望VRTK在以后的新版本中能夠提供類似SteamVR中的CameraRig這樣的prefab盗扇,開發(fā)者通過(guò)簡(jiǎn)單的屬性修改即可完成VRTK的配置最好。