HTC vive開發 關於手柄按鍵

2021-07-15 23:45:22 字數 1388 閱讀 6958

一、關於左右手柄的對應關係

二、手柄按鍵

1 - 菜單鍵

6 - 系統鍵(按下後手柄斷開連線,再次按下手柄再次連線上)

7 - 扳機鍵

8 - 握持鍵

9 - 觸控板鍵

(1)點按

按鍵監聽方式一:(steamvr的方式,封裝了openvr)

通過device.getpressdown / getpressup / getpress獲取按鍵事件

按鍵監聽方式二:(openvr的方式,偏底層)

通過controllerstate.ulbuttonpressed & (steamvr_controller.buttonmask.trigger)獲取按鍵的按下、鬆開兩種狀態

或者:

注:m_state、m_prevstate分別表示:當前幀狀態、前一幀狀態

獲取按下時,觸控板的值

獲取鬆開時,觸控板的值(這裡必須使用前一幀的狀態,因為鬆開時,當前幀的觸控的值為0)

問題:按下時,沒有獲取到當前幀觸控板的值!

猜測原因:獲取值的update方法在更新狀態update的方法之前執行了,更新狀態的update方法執行後,才能獲取觸控板的值

解決方法:如果不想修改指令碼執行順序的話,可以使用lateupdate

(2)觸控

方式一:

問題:觸控按下時,沒有獲取到當前幀觸控板的值!

原因:不明,內部機制需要搞清楚

解決辦法:在觸控按下後的第二幀才獲取到觸控板的值。

(3)觸控板軸的獲取

通過以上兩種方式獲取的vrcontrollerstate_t,獲取觸控板的軸

x = state.raxis0.x

y = state.raxis0.y

**

unity中檢測不到HTC vive手柄如何解決

直接匯入camerarig後執行專案之後看不到手柄 解決辦法 把camerarig展開,在camera head 中選中camera eye 在inspector中選擇新增元元件 add component 搜尋 steamvr updateposes加入即可 新增完成後重新執行後即可看到手柄。如果...

HTC VIVE開發教程(三)

在這一節,我介紹的主要內容有 在steamvr外掛程式的prefabs資料夾下面有三個預製體,camerarig是相機預製體,使用時直接將這個預製相機作為主相機拖入場景中,我們就能以第一人稱看到vr頭盔裡面的內容。status是通過overlay顯示一些狀態資訊的預製體。steamvr是渲染核心預製...

Android 藍芽手柄開發

基於android平台的藍芽遊戲手柄 1 android系統為3.1及以上系統預設支援遊戲手柄,3.1以下需要系統做相應的處理。我用的是國產4.0.3版本的手機 3 觸控事件的模擬 這個對我來說是乙個難點,由於一直從事應用開發,對底層涉及較少,一開始費了不少時間,網上找了很多的資料,也得到了不少人的...