SteamVR Unity工具包(VRTK)之控制器互動
阿新 • • 發佈:2018-11-19
可互動物件(VRTK_InteractableObject)
可互動物件指令碼被新增到需要用(如控制器)來互動的任何遊戲物件上。 可用指令碼引數如下
Touch Interactions 觸控互動
Grab Interactions 抓握互動
Grab Mechanics 抓握機制
Use Interactions 使用互動
觸控互動物件(VRTK_InteractTouch)
觸控互動指令碼被新增到[CameraRig] 預製裡的控制器物件上。 可用引數如下: · Hide Controller On Touch: 當有效觸碰發生時隱藏控制器模型 · Hide Controller Delay:觸控隱藏控制器之前的等待秒數。 · Global Touch Highlight Color: 如果互動物件被觸碰就能高亮顯示,沒有設定本地顏色的話就使用全域性顏色。
抓取互動物件(VRTK_InteractGrab)
互動抓取指令碼被新增到[CameraRig] 預製裡的控制器物件上,並且需要新增VRTK_ControllerEvents指令碼用來監聽抓取和釋放互動遊戲物件的控制器按鈕事件。它監聽AliasGrabOn和AliasGrabOff 事件來確定物件合適應該被抓取和釋放。 控制器物件也需要新增VRTK_InteractTouch 指令碼用來確定何時一個可互動物件被觸控到。只有有效的被觸控物件才能被抓取。 如果控制器觸碰到一個包含VRTK_InteractableObject指令碼並且isGrabbable 標誌位設定為真的遊戲物件,該物件就可以被抓取。 如果有效可互動物件是可抓取的,按下控制器上所設定的抓取按鈕(預設是Trigger按鈕)將抓取和對齊物件到控制器上,並且直到抓取按鈕鬆開才會被釋放。 當控制器抓取按鈕鬆開時,如果可互動物件是可抓取的,它將會被按一定速率沿著控制器鬆開時的方向進行推動,這就模擬了物件投擲。 可互動物件需要碰撞體用來啟用觸發和一個剛體用來拾取它們並在遊戲世界中四處移動它們。
使用可互動物件(VRTK_InteractUse)
互動使用指令碼被新增到[CameraRig] 預製裡的控制器物件上,並且需要新增VRTK_ControllerEvents指令碼用來監聽使用和停止使用互動遊戲物件的控制器按鈕事件。它監聽AliasUseOn 和AliasUseOff 事件來確定物件合適應該被使用和停止使用。 控制器物件也需要新增VRTK_InteractTouch指令碼來決定何時可互動物件被觸碰。只有有效的觸碰物件才能被使用。 如果控制器觸碰到一個包含VRTK_InteractableObject 指令碼且isUsable標誌位設定為真,這個物件就能被使用。
自動抓取可互動物件(VRTK_ObjectAutoGrab)
通過把VRTK_ObjectAutoGrab指令碼加到控制器上並指定應該預設抓取的物件,來讓特定控制器能自動抓取可互動物件。 自動抓取物件指令碼新增到[CameraRig] 預製裡的控制器物件上,控制器物件還需要新增VRTK_InteractGrab 指令碼。 可用指令碼引數如下: · Object To Grab(抓取的物件):在遊戲開始時被控制器抓取的遊戲物件(在場景或者預製裡)。 · Clone Grabbed Object(複製被抓取物件):如果勾選,Object To Grab(抓取的物件)將被複制到一個新物件並新增到控制器上,而被複制的物件留在場景裡。這在兩個控制器都需要抓取同樣的物件時是需要的,因為單個物件不能被不同的控制器同時抓取。如果被抓取的物件是一個預製就也需要被複制,因為它需要存在於場景中被抓取。
例子參見SteamVR_Unity_Toolkit/Examples/026_Controller_ForceHoldObject場景。這裡每個控制器自動抓取了一把劍,同時為了防止劍被扔掉,劍被永久的新增到使用者的控制器上
原文連結:http://www.cnblogs.com/unity3ds/p/5811011.html