Unity Steam_VR 開發工具外掛 VRTK自帶案例分析(第二部分)
轉載至https://www.cnblogs.com/zerotoinfinity/p/6485556.html
DEMO 025_Controls_Overview
互動控制器: 真實版 UI 元素。所有型別的控制器都繼承自VRTK_Control。
第一種互動控制器:按鈕VRTK_Button
把這個指令碼新增到遊戲物體上,可以讓這個遊戲物體表現的和真實世界的按鈕一樣的物理特性,玩家通過觸碰它,可以被按下,按鈕按下時的移動方向可以自由設定,也可以讓指令碼自由偵測按鈕周圍的碰撞環境來確定按下的運動方向。
監聽按鈕按下的事件有兩種方式:1 在Event OnPush 事件list 新增一個像UGUI 或 NGUI那樣,當事件發生時,觸發指令碼中的方法。
另一種是用程式碼的方式:
GetComponent<</span>VRTK_Button>().events.OnPush.AddListener(handlePush);
HandlePush是事件觸發時呼叫的方法。
關於按鈕移動方向的設定
該按鈕的移動方向是區域性座標的X軸,圖中黃線的就是可移動的方向。
上圖是有指令碼自由偵測的移動方向
指令碼中connented to 是讓按鈕作為哪個物體的子物體,跟隨之移動
第二種互動 滑調
引數和UI的滑調引數意義相似,規定了最小最大值。注意,滑調的左右移動的極限位置,如果Detect Min Max 打鉤,即自動識別需要滑調左右有碰撞體作為邊界如第一張滑調圖片顯示的ColliderBox。
獲取改滑調的當前數值
監聽defaultEvent.OnValueChanged.AddListener
GetValue()是當前數值,GetNormalizedValue()是百分比數值
滑調事件有兩個傳入引數,第一個是當前slider 的當前滑動數值,第二個是歸一化的當前滑動數值,即百分比:0-1
第三種 : 旋鈕
類似電風扇的開關
Direction 是旋轉的軸向。事件和slider 一樣。
其他互動控制器 : 寶箱 ,門 ,槓桿
Demo 026_Controller_ForceHoldObject
手柄握住的物體和其他物體碰撞是,震動反饋
DEMO 027_CameraRig_TeleportByModelVillage
觸控沙盤中目標位置的模型,移動到環境中對應的傳送位置
DEMO 028_ CameraRig_RoomExtender
暫時沒看到新的東西
Demo 029_Controller_Tooltips
提示器
DEMO 030_Controls_RadialTouchpadMenu
未研究
DEMO 031_CameraRig_HeadsetGazePointer
把傳送拋物線的起點放到頭部,而不是之前放到手柄處的做法, 功能沒什麼不同
DEMO 032_Controller_CustomControllerModel
用自定義的手來代替手柄模型
取消手柄的渲染元件
並且監聽手柄輸入事件來控制手的動作
DEMO 033_CameraRig_TeleportingInNavMesh
在導航(navigation)物體上傳送。和以往的普通傳送設定無區別。唯一有影響的是不能傳送到navimesh 邊界附近。
DEMO 034_Controls_InteractingWithUnityUI
和UI元素互動
首先需要在手柄上新增
引數
activation Mode:和UI互動需要一個專門的鐳射指標 這個引數是鐳射顯示的開關條件
Attempt click on deactivate:即使鐳射指標未顯示時也可以啟用UI
Ignore canvas with tag or class:如果目標UI canvas的標籤或添加了該引數名稱的指令碼名稱時,忽略對它的操作
注意:是在canvas 元件的遊戲物體上的tag和新增指令碼
監聽UI pointer 的互動事件
事件引數
DEMO 035_Controller_OpacityAndHighlighting
物體高亮顯示時,變透明
Alpha 值為0
DEMO 036_Controller_CustomCompoundPointer
自定義拋物線模型元素
DEMO 037_CameraRig_ClimbingFalling
攀登移動
可攀登物體
DEMO 038_CameraRig_DashTeleport
移動傳送和之前位置傳送的方式不同,這是模擬行走的過程到目的地,在CameraRig預設體上
DEMO 039_CameraRig_AdaptiveQuality
自適應渲染螢幕畫素等級,這個和valve 提供的The lab 渲染外掛一個自適應渲染質量非常相似
相機位置模擬器
這個指令碼用鍵盤來控制位移來代替眼鏡控制頭部的攝像機位置,測試時會方便很多。