騰訊GAD : 窗間風月 html
原文 URL : http://gad.qq.com/article/detail/7192026?ADTAG=gad.vr.qq編程
怎麼用Unity去對HTC vive手柄按鈕進行開發?相信是不少VR遊戲開發人員要思考的,爲了幫助你們,下面針對用Unity開發HTC vive手柄按鈕的這五方面進行了介紹,一塊兒來看看吧。插件
本文目錄:3d
1.認識下vive的手柄htm
2.SDK下載blog
3.程序開發之綜述遊戲
4.Trigger按鈕開發事件
5.Pad開發ip
認識下vive的手柄遊戲開發
請看下圖
手柄兩個一對,分左右,開發的時候也是分左右的。每一個上面有一個pad和4個按鈕。簡單說明下:
1 開關、系統菜單按鈕:只有這個按鈕不能夠編程(默認),用來打開手柄,其實沒用關的功能。在遊戲中按下該按鈕是調出系統默認的菜單,用來關閉,切換遊戲用的。
2 menu按鈕:默認用來打開遊戲菜單。
3 grip按鈕:用的最少的按鈕,每一個手柄上雖然有兩個,可是是相同的。
4 trigger按鈕:扳機按鈕,用的最多,能夠有力度。
5 pad:觸摸屏+鼠標的功能,可觸摸,可點擊。
SDK下載
須要兩個插件:
SteamVR Plugin
Vive Input Utility
商城地址以下,都是免費的,下載後導入
https://www.assetstore.Unity3D.com/cn/#!/content/32647
https://www.assetstore.unity3d.com/cn/#!/content/64219
程序開發之綜述
首先,引用HTC.UnityPlugin.Vive
每一個按鈕包括pad都有GetPress、GetPressDown、GetPressUp三種方法,用HandRole枚舉來肯定左右手柄,用ControllerButton枚舉來肯定是哪一個按鈕。
對於按鈕,GetPressDown是按下時觸發,GetPressUp是放開時觸發,以上兩個是個事件,GetPress是按住時一直返回ture,算是一個狀態。
對於pad,有兩種:
當ControllerButton.Pad時,和按鈕相同。
當ControllerButton.PadTouch時,GetPressDown是接觸時觸發,GetPressUp是離開時觸發,GetPress是接觸時一直返回的狀態。
除了上面的方法,還能夠經過回掉的方式實現
Trigger按鈕開發
Trigger有模擬值,從0到1,沒按的時候是0,所有按下是1。能夠經過GetTriggerValue方法得到。
Trigger按鈕,對應有三種,Trigger,HairTrigger,FullTrigger。
當TriggerValue在0.1到0.2時,對應HairTrigger,當TriggerValue超過0.5時對應Trigger,當TriggerValue=1時,對應FullTrigger。
能夠簡單理解爲,輕按=HairTriiger,中度按=Trigger,所有按下=FullTrigger。
Pad開發
pad作那麼大,固然除了能夠按,還能夠返回位置信息。用GetPadAxis方法便可。
觸碰位置信息以下圖
此外,對應pad,又有接觸、按下的兩組方法。其中,Axis是座標位置,Delta是最後一幀移動位置,Vector是移動的向量。
系列分享:
GJM:Unity開發HTC vive 1、手柄按鈕 【傳送門】
GJM : Unity開發HTC vive 2、操做GUI 【傳送門】
GJM:Unity開發HTC vive 3、遠處拖動3D物體 【傳送門】