?轉(zhuǎn)載 :原文鏈接:http://www.chinaar.com/ZYJC/1434.html
簡單指針(Simple
Pointer)腳本從控制器尾部發(fā)出一個有色光束來模擬激光束。這在場景中指向?qū)ο蠛苡杏?,它能判斷所指向的對象以及對象距控制器發(fā)出光束位置的距離。
激光束默認按下控制器的抓握鍵(Grip)來激活。因為所偵聽的事件是AliasPointer別名事件,所以這個指針開關按鈕可以通過在
VRTK_ControllerEvents腳本參數(shù)里來改變 pointerToggleButton來選擇設置。
簡單指針腳本(VRTK_ SimplePointer)添加到[CameraRig]
預制里的控制器對象上,同時添加需要VRTK_ControllerEvents腳本來監(jiān)聽啟用和禁用光束的控制器按鈕事件。
下面是可用腳本參數(shù):
· Enable Teleport(啟用傳送):如果勾選了,在目標設置事件中的teleport標志位就設為true,所以傳送腳本就知道是否要行動到新的目標。如果這個選項沒有勾選的話,控制器光束啟動但是不會觸發(fā)位移。
· Point Hit Color(指針碰撞顏色):當光束和一個有效目標碰撞的顏色。每個控制器可以有不同的顏色設置。
· Pointer Miss Color(指針無碰撞顏色):當光束沒有命中有效目標時的顏色。每個控制器可以有不同的顏色設置。
· Show Play Area Cursor(顯示游玩區(qū)光標):如果這個啟動,游玩區(qū)界限就會在光束指針的頂端顯示出來,顏色和當前指針顏色相同。
· Play Area Cursor Dimensions(游玩去光標尺寸):決定游玩區(qū)光標和碰撞的尺寸。如果值為零,Play Area
Cursor 的尺寸將根據(jù)Play Area空間進行校正。
· Handle Play Area Cursor Collisions(處理游玩區(qū)光標碰撞):如果勾選,當游玩區(qū)光標和其他物體發(fā)生碰撞時,指針顏色就會變成Pointer Miss Color的顏色且WorldPointerDestinationSet 事件將不會被觸發(fā),這將防止傳送到游玩區(qū)會發(fā)生碰撞的區(qū)域。
· Beam Always On(光束總是開啟):如果這個勾選,光束指針總是可見,但是設置目標點事件仍然只會在所指定按鈕松開時發(fā)出。
· Pointer Thickness(指針光束厚度):光束長寬也可以在腳本里設置以及能夠開關顯示在光柱最后的球形光柱頂端(表示光標)。
· Pointer Length(指針光束長度):在停止前光束投射的距離。
· Show Pointer Tip(顯示指針頂端):切換是否光標顯示在光束指針的尾部。
簡單指針對象擴展自VRTK_WorldPointer 抽象類并因此發(fā)出相同的事件和有效數(shù)據(jù)。
VRTK_SimplePointer腳本的例子可以在SteamVR_Unity_Toolkit/Examples/003_Controller_SimplePointer場景中看到并且事件用法和監(jiān)聽的腳本例子可以看SteamVR_Unity_Toolkit/Examples/Resources/Scripts/VRTK_ControllerPointerEvents_ListenerExample.cs腳本。