抓取物體功能的實現(xiàn)##
005_Controller_BasicObjectGrabbing##
1腰奋、VRTK_InteractableObject:可交互對象##
定義:可交互對象腳本被添加到需要用(如控制器)來交互的任何游戲?qū)ο笊稀?/p>
Touch Interactions:觸摸交互
Highlight On Touch:如果勾選劳秋,這個對象在控制器觸摸它時就會高亮凡纳。
Touch Highlight Color:對象被觸摸時高亮的顏色惧盹。顏色可以被任何全局的設(shè)置顏色來覆寫
(例如InteractTouch 腳本)捉撮。
Rumble On Touch:控制器觸碰對象時觸發(fā)振動反饋蔓彩,x表明時長恳守,y表明震動強度。(x和y將來會被自定義編輯器代替)砌们。
Grab Interactions:抓握交互
Is Grabbale:決定對象是否能被抓握杆麸。
Is Droppable: 決定對象在被控制器抓握后能否被放下搁进。如果沒有勾選,一旦用控制器按鈕拾起了物品就不能放下了昔头。但是如果抓握的機制是關(guān)節(jié)(Fixed_Joint)的 話饼问,當(dāng)對象受力足夠大之后關(guān)節(jié)斷開,物品也就被
放下了揭斧。所以最好使用控制器子物體的抓握機制(Child_Of_Controller)來防止這種情況莱革。
Hold Button To Grab:如果勾選,控制器就需要持續(xù)按住設(shè)置為抓握的按鈕來保持抓握狀態(tài)讹开。如果沒有勾選盅视,
抓握的按鈕切換抓握行為通過按下一次抓取,再按一次釋放旦万。
Grab Mechanics:抓握機制
Grab Attach Type:這決定了抓取的物品在被抓取時怎樣被添加到控制器上左冬。
o Fixed Joint(固定關(guān)節(jié))用一個固定的關(guān)節(jié)把對象附加到控制器上,意味著附加對象以完全1:1的方式
追蹤控制器的位置和旋轉(zhuǎn)纸型。
對于手柄控制器的抓取代碼##
2、VRTK_InteractTouch:觸碰##
定義:觸摸交互腳本被添加到[CameraRig] 預(yù)制里的控制器對象上梅忌。
3狰腌、VRTK_InteractGrab:抓取交互對象##
定義:交互抓取腳本被 添加到[CameraRig] 預(yù)制里的控制器對象上,并且需要添加VRTK_ControllerEvents腳本用來監(jiān)聽抓取和釋放交互游戲?qū)ο蟮目刂破靼粹o事件牧氮。它監(jiān)聽 AliasGrabOn和AliasGrabOff 事件來確定對象合適應(yīng)該被抓取和釋放琼腔。
注意:
1、控制器對象也需要添加VRTK_InteractTouch 腳本用來確定何時一個可交互對象被觸摸到踱葛。只有有效的
被觸摸對象才能被抓取丹莲。
2、如果控制器觸碰到一個包含VRTK_InteractableObject腳本并且isGrabbable 標志位設(shè)置為真的游戲?qū)ο螅? 該對象就可以被抓取尸诽。
3甥材、如果有效可交互對象是可抓取的,按下控制器上所設(shè)置的抓取按鈕(默認是Trigger按鈕)將抓取和對齊對象
到控制器上性含,并且直到抓取按鈕松開才會被釋放洲赵。
4、當(dāng)控制器抓取按鈕松開時商蕴,如果可交互對象是可抓取的叠萍,它將會被按一定速率沿著控制器松開時的方向進行推動天吓,
這就模擬了對象投擲
5咽斧、可交互對象需要碰撞體用來激活觸發(fā)和一個剛體用來拾取它們并在游戲世界中四處移動它們其馏。
參數(shù)解釋
Controller Attach Point:控制器模型上用來吸附抓取的對象的剛體點(默認為tip)
Hide Controller On Grab: 當(dāng)有效抓取發(fā)生時隱藏控制器模型拆宛。
Hide Controller Delay:在抓取時隱藏控制器之前的等待時間秒數(shù)茂嗓。
Grab Precognition:預(yù)先抓取: 在抓取按鈕按下時和控制器正在抓取某個東西時之間時間量缠劝。例如舷蒲,
如果一個對象下落過快蹬昌,因為人的反應(yīng)時間可能很難及時按下抓取按鈕來抓住對象。這個值越高 意味著抓取鍵可以
越提前在控制器碰到對象以及碰撞發(fā)生前按下赫蛇,如果抓取鍵仍然被按下(如果抓取對象需要持續(xù)按鍵抓取的話)绵患,
則抓取動作就會成功。
Throw Multiplier:投擲乘數(shù):用來乘以對象被扔出時速度的量悟耘。在放大 CameraRig 來模擬能夠把物體
扔的更遠時是很有用的落蝙。
Create Rigid Body When Not Touching:如果勾選,當(dāng)抓取按鈕按下時暂幼,如果控制器沒有碰到一個可交互
的對象筏勒,那么添加到控制器上的剛體就允許控制器去推動周圍其他的剛體對象。
發(fā)出事件如下:
· ControllerGrabInteractableObject: 當(dāng)有效對象被抓取時發(fā)出
· ControllerUngrabInteractableObject: 當(dāng)有效對象從抓取到放開時發(fā)出
二旺嬉、相關(guān)場景解析##
026_Controller_ForceHoldObject##
4管行、VRTK_InteractUse:使用可交互對象##
定義:交互使用腳本被 添加到[CameraRig] 預(yù)制里的控制器對象上,并且需要添加VRTK_interactTouch及 VRTK_ControllerEvents腳本用來監(jiān)聽使用和停止使用交互游戲?qū)ο蟮目刂破靼粹o事件邪媳。它監(jiān)聽 AliasUseOn 和AliasUseOff 事件來確定對象合適應(yīng)該被使用和停止使用捐顷。
控制器對象也需要添加VRTK_InteractTouch腳本來決定何時可交互對象被觸碰。只有有效的觸碰對象才能被使用雨效。
如果控制器觸碰到一個包含VRTK_InteractableObject 腳本且isUsable標志位設(shè)置為真迅涮,這個對象就能被使用。
5徽龟、VRTK_ObjectAutoGrab:自動抓取可交互對象##
定義:通過把VRTK_ObjectAutoGrab腳本加到控制器上并指定應(yīng)該默認抓取的對象叮姑,來讓特定控制器能自動抓取可交互對象。
自動抓取對象腳本添加到[CameraRig] 預(yù)制里的控制器對象上据悔,控制器對象還需要添加VRTK_InteractGrab 腳本传透。