Unity Steam_VR 開發工具插件 VRTK自帶案例分析(第二部分)


DEMO 025_Controls_Overview

交互控制器: 真實版 UI 元素。所有類型的控制器都繼承自VRTK_Control。 

第一種交互控制器:按鈕VRTK_Button

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

把這個腳本添加到游戲物體上,可以讓這個游戲物體表現的和真實世界的按鈕一樣的物理特性,玩家通過觸碰它,可以被按下,按鈕按下時的移動方向可以自由設置,也可以讓腳本自由偵測按鈕周圍的碰撞環境來確定按下的運動方向。

監聽按鈕按下的事件有兩種方式:1 在Event OnPush 事件list 添加一個像UGUI 或 NGUI那樣,當事件發生時,觸發腳本中的方法。

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

另一種是用代碼的方式:

GetComponent<</span>VRTK_Button>().events.OnPush.AddListener(handlePush);

HandlePush是事件觸發時調用的方法。

關於按鈕移動方向的設置

該按鈕的移動方向是局部坐標的X軸,圖中黃線的就是可移動的方向。

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

 Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

上圖是有腳本自由偵測的移動方向

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

腳本中connented to 是讓按鈕作為哪個物體的子物體,跟隨之移動

第二種交互 滑調

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

參數和UI的滑調參數意義相似,規定了最小最大值。注意,滑調的左右移動的極限位置,如果Detect Min Max 打鈎,即自動識別需要滑調左右有碰撞體作為邊界如第一張滑調圖片顯示的ColliderBox。

獲取改滑調的當前數值 

       Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

監聽defaultEvent.OnValueChanged.AddListener

GetValue()是當前數值,GetNormalizedValue()是百分比數值

滑調事件有兩個傳入參數,第一個是當前slider 的當前滑動數值,第二個是歸一化的當前滑動數值,即百分比:0-1

第三種 : 旋鈕

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

類似電風扇的開關

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

Direction 是旋轉的軸向。事件和slider 一樣。  

其他交互控制器 :  寶箱  ,門 ,杠桿

Demo 026_Controller_ForceHoldObject

手柄握住的物體和其他物體碰撞是,震動反饋

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

DEMO 027_CameraRig_TeleportByModelVillage

觸摸沙盤中目標位置的模型,移動到環境中對應的傳送位置

DEMO 028_ CameraRig_RoomExtender

暫時沒看到新的東西

Demo 029_Controller_Tooltips

提示器

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

 DEMO 030_Controls_RadialTouchpadMenu

 未研究

 DEMO 031_CameraRig_HeadsetGazePointer

 把傳送拋物線的起點放到頭部,而不是之前放到手柄處的做法,  功能沒什么不同

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

DEMO 032_Controller_CustomControllerModel

用自定義的手來代替手柄模型

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

取消手柄的渲染組件

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

並且監聽手柄輸入事件來控制手的動作

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

 DEMO 033_CameraRig_TeleportingInNavMesh

在導航(navigation)物體上傳送。和以往的普通傳送設置無區別。唯一有影響的是不能傳送到navimesh 邊界附近。 

DEMO 034_Controls_InteractingWithUnityUI

和UI元素交互

首先需要在手柄上添加

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

參數 

activation Mode:和UI交互需要一個專門的激光指針   這個參數是激光顯示的開關條件

Attempt click on deactivate:即使激光指針未顯示時也可以激活UI 

Ignore canvas with tag or class:如果目標UI canvas的標簽或添加了該參數名稱的腳本名稱時,忽略對它的操作

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2   Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

注意:是在canvas 組件的游戲物體上的tag和添加腳本 

監聽UI pointer 的交互事件 

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

事件參數

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

DEMO 035_Controller_OpacityAndHighlighting

物體高亮顯示時,變透明

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

Alpha 值為0

DEMO 036_Controller_CustomCompoundPointer

自定義拋物線模型元素

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

DEMO 037_CameraRig_ClimbingFalling

攀登移動

 Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

可攀登物體

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

DEMO  038_CameraRig_DashTeleport

移動傳送和之前位置傳送的方式不同,這是模擬行走的過程到目的地,在CameraRig預設體上

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

DEMO 039_CameraRig_AdaptiveQuality

自適應渲染屏幕像素等級,這個和valve 提供的The lab 渲染插件一個自適應渲染質量非常相似

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

相機位置模擬器

Unity <wbr>Steam_VR開發工具插件---VRTK <wbr>自帶案例分析Part2

這個腳本用鍵盤來控制位移來代替眼鏡控制頭部的攝像機位置,測試時會方便很多。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM