VRTK3.3(基礎(chǔ)功能快速開發(fā))
一、環(huán)境配置使用
因?yàn)閂RTK3.3.0版本是基于SteamVRSDK早期版本封裝的,所以SteamSDK下載1.0+的版本最為合適,可以去SteamVR官網(wǎng)下載早期歷史版本,而VRTK版本可以從unity商店下載或者去VRTK官網(wǎng)都可以。
二、針對(duì)于基本功能簡(jiǎn)介
1.實(shí)現(xiàn)UI交互
手柄上掛載腳本(可用Demo里的預(yù)制體):
VRTK_Controller Events(手柄功能事件)
VRTK_UI Pointer:手柄射線
VRTK_Straight Ponter Renderer:繪制射線
VRTK_controller UI pointer Event

建一個(gè)Canvas掛載腳本VRTK-UICanvas
修改Selection Button :Touchpad Press Click Method: UP

2.移動(dòng)功能
手柄需要掛載的腳本:
VRTK-Point:pointer Renderer 把對(duì)應(yīng)手柄拖進(jìn)去
VRTK-Bezier Pointer Renderer:(貝塞爾曲線 如果有UI的話建議不要使用這個(gè)曲線射線)下面四個(gè)預(yù)設(shè)物分別對(duì)應(yīng)
發(fā)出去拋物線預(yù)設(shè)物,目標(biāo)點(diǎn)預(yù)設(shè)物,特效預(yù)設(shè)物,禁止預(yù)設(shè)物。
可以在資源包里搜索:TeleportPoint 預(yù)制體 這個(gè)是針對(duì)于點(diǎn)位置的

3.拾取功能
手柄掛載腳本:
VRTK_controller Events:手柄事件觸發(fā)
VRTK_interact Touch:手柄模型
VRTK_Interact Grab
被抓物體身上掛載腳本:
VRTK-Interactable object :記得把 Is Grabbable 開啟 是否抓取
VRTK-Fixed joint Grab Attach::Precision Grab (Bool) 精準(zhǔn)抓取
下面兩個(gè) Right Snap Handle 和Left… 是抓取對(duì)象之后附加在手上位置信息的

4.振動(dòng)功能
前提:碰撞和剛體必須的!!!
物體腳本掛載:
碰撞和剛體必須的
掛載腳本:
Sword:里面腳本里面有三個(gè)屬性可以設(shè)置為public
第一個(gè)屬性:震動(dòng)大小
第二個(gè)屬性:碰撞力
第三個(gè)屬性:最大碰撞力
Grab Attach Mechanic Script:掛載本物體 抓取附加機(jī)制腳本
Secondary Grab Action Script:掛在本物體 二次抓取動(dòng)作腳本
VRTK_Interactable Object
VRTK_Fixed Joint Grab Attach
VRTK_Swap Controller Grab Action
三、案例功能(參考 https://blog.csdn.net/pq8888168/article/details/103156223)
.003_Controller_SimplePointer場(chǎng)景:手柄發(fā)射一條直線射線的功能演示
.004_CameraRig_BasicTeleport場(chǎng)景:基礎(chǔ)的使用直線射線傳送的功能演示
.005_Controller_BasicObjectGrabbing:基礎(chǔ)的手柄拾取物體,包括變色和邊緣發(fā)光,左右手柄同時(shí)控制的功能演示
.006_Controller_UsingADoor:抓取物體后使用物體的功能演示,這里是觸碰門按扳機(jī)開門。
.007_CameraRig_HeightAdjustTeleport:帶有高度的傳送以及忽略某些物體的傳送檢測(cè)功能,還包括頭部的物理效果。
.008_Controller_UsingAGrabbedObject:抓取物體后使用物體上面的功能演示,這里是抓取槍發(fā)射子彈和抓取方塊轉(zhuǎn)圈圈
.009_Controller_BezierPointer:貝塞爾曲線的傳送功能使用演示。
.010_CameraRig_TerrainTeleporting:地形上的傳送功能,主要是貝塞爾曲線的圖標(biāo)貼合地面效果展示。
.011_Camera_HeadSetCollisionFading:只要展示頭盔碰撞到墻體的黑屏效果,表示超出行動(dòng)范圍。
.012_Controller_PointerWithAreaCollision:使用傳送功能時(shí)會(huì)出現(xiàn)一個(gè)范圍提示框,提示框觸碰墻體等會(huì)提示變紅不允許傳送
.013_Controller_UsingAndGrabbingMultipleObjects:手柄抓取物體和使用物體功能的方式,按下不松或者只要按下一次
.014_Controller_SnappingObjectsOnGrab:添加固定關(guān)節(jié)的抓取連接點(diǎn)功能,看不懂怎么設(shè)置值得。
.015_Controller_TouchpadAxisControl:手柄圓盤上觸碰的位置軸向控制小車移動(dòng)的方向功能,
.016_Controller_HapticRumble:手柄的震動(dòng)效果演示。
.017_CameraRig_TouchpadWalking:觸摸手柄圓盤控制CameraRigde的移動(dòng)和方向
.018_CameraRig_FramesPerSecondCounter:幀數(shù)的顯示效果
.019_Controller_InteractingWithPointer:使用射線控制物體的功能演示
.020_CameraRig_MeshTeleporting:網(wǎng)格碰撞的傳送效果
.021_Controller_GrabbingObjectsWithJoints 使用關(guān)節(jié)抓取
.022_Controller_CustomBezierPointer:常規(guī)使用的貝塞爾曲線樣式
.023_Controller_ChildOfControllerOnGrab:子物體的抓取功能演示
.024_CameraRig_ExcludeTeleportLocations:排除不可傳送的物體,使用Tag或者Layer…
.025_Controls_Overview:控制功能的觀察
.026_Controller_ForceHoldObject:手柄的反饋,根據(jù)力量施加反饋效果。
.027_CameraRig_TeleportByModelVillage:使用觸摸模型的方式進(jìn)行固定點(diǎn)的傳送。
.028_CameraRig_RoomExtender:房間模式功能拓展
.029_Controller_Tooltips:手柄上的按鈕小提示
.030_Controls_RadialTouchpadMenu:圓盤上面的按鈕菜單功能
————————————————
原文鏈接:https://blog.csdn.net/quailchivalrous/article/details/123878282