打開unity把VRTK的unity package和Steam VR的unity package導(dǎo)入到你的項目里面群凶,然后新建一個空物體
然后把名字改成CamRig然后建立子物體把名字改成[VRTK_SDKManager](也可以不用這名字,開心就好)將其坐標歸零,然后給其建立一個子物體睛藻,子物體也是一個空物體歸零,名字叫SDKSetups茅茂,然后在給其建立一個子物體取名叫SteamVR給這個腳本添加一個叫VRTK_SDK SetUp的腳本(這個是VRTK自帶的腳本)或渤,然后把SteamVR的[CameraRig]和[SteamVR]的Prefab拖到其子物體上。點擊SteamVR的這個空物體旷余,把腳本上的Auto Populate后面的對勾給取消然后把這個腳本拖GameObject到對應(yīng)的地方绢记,如圖
然后再把剛才去掉的對勾打上,這這腳本的意思就是在你運行程序的時候會自動加載SteamVR的攝像機其實現(xiàn)的功能正卧。然后在CamRig下建立另一個子物體名字叫[VRTK_Scripts]這里就是放置一些需要的腳本蠢熄,先建立一個子物體叫PlayArea把VRTK——Body Physics和VRTK——Height Adjust Teleport腳本放到這個物體上,這兩個腳本確認了你的相機能行走的范圍和高度以及一些基本的參數(shù)炉旷,可以自己研究一下
然后在[VRTK_Scripts]建立兩個空物體分別叫LeftController和RightController這里放置給左右手柄添加的事件签孔,我這里添加的是左手柄為射線操作叉讥,右手柄為拋物線操作
LeftController
-
第一個要添加的是VRTK_Controller Events**
這個腳本主要實現(xiàn)了手柄的輸入事件
pointerToggleButton:激光的顯示開關(guān),激光在VR里相當(dāng)于鼠標箭頭的指向功能饥追。
pointerSetButton:激光停留的指向目標图仓,觸發(fā)目標的功能,相當(dāng)于鼠標點擊但绕。
grabToggleButton:抓住物體動作救崔,配合使用 VRTK 插件集成的抓取,投擲功能捏顺。
useToggleButton:觸發(fā)目標事件六孵,比如把手柄放在門把手上,按下這個按鍵幅骄,觸發(fā)門打開的功能劫窒;手柄放在電燈開關(guān)上,按下按鍵昌执,觸發(fā)電燈開發(fā)的功能烛亦。這個和pointerSetButton區(qū)別在于后者需要激光落在目標上,才能觸發(fā)目標上的功能懂拾。
uiClickButton:觸發(fā)UI Canvas 目標的事件煤禽。
menuToggleButton:游戲目錄顯示開關(guān)。
axisFidelity:按鍵按下的強度岖赋,完全按下是1檬果,松開時是0。現(xiàn)在只有Trigger按鍵(手部后面扳機)有此屬性唐断。
triggerClickThreShold:扳機要到多大程度选脊,才能使用扳機的觸發(fā)功能。如果是0.5脸甘,則表示只要按下一半的程度就可以觸發(fā)恳啥,如果是1,則必須完全按下才能觸發(fā)丹诀。
以上是設(shè)置各個按鍵在插件中交互的功能钝的。
如果要獲得每個按鍵具體的使用情況,如按下铆遭、松開按鍵硝桩、手觸摸板的按鍵位置、扳機的按下強度等枚荣,則需要在 VRTK_ControllerEvent 注冊對應(yīng)按鍵的事件碗脊。
在VRTK_ControllerEvents_ListenerExample腳本中,監(jiān)聽了VRTK_ControllerEvent所有按鍵的事件橄妆,和按鍵的參數(shù)信息衙伶。如下圖的扳機鍵的按鍵事件祈坠。 (以上別名按鈕已經(jīng)過時,分別被其它組件中的But取代矢劲,在“VRTK_Controller Events”腳本中有注釋說明)
事件的參數(shù)在VRTK_ControllerEvents中是:
第二個要添加的是VRTK_Interact Touch
主要的作用就是和物體發(fā)生碰撞的交互
第三個要添加的是VRTK_UI Pointer
主要作用是使其能與UI發(fā)生交互
第四個要添加的是VRTK_Controller UI Pointer Events_Listener Example
第五個要添加的是VRTK_Pointer
其Enable Teleport這個選項選擇是可以用此位移颁虐,不選中就是射線打中的地方攝像機不會位移到這個地方
在Pointer Renderer這里面把父物體LeftController加入進去
第六個要添加的是VRTK_Straight Pointer Renderer
這個主要就是射線的操作,Layers To Ignore中選擇一些被無視的對象卧须,即射線射到這些物體上不會有反應(yīng),這些物體通過加Layer層標簽來決定儒陨。
RightController
- 第一個要添加的是VRTK_Controller Events