GJM:Unity開發HTC vive 1、手柄按鈕 【轉載】

騰訊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的手柄遊戲開發

請看下圖

Unity開發HTC vive 入門1、手柄按鈕

Unity開發HTC vive 入門1、手柄按鈕

 

手柄兩個一對,分左右,開發的時候也是分左右的。每一個上面有一個pad和4個按鈕。簡單說明下:

1 開關、系統菜單按鈕:只有這個按鈕不能夠編程(默認),用來打開手柄,其實沒用關的功能。在遊戲中按下該按鈕是調出系統默認的菜單,用來關閉,切換遊戲用的。

2 menu按鈕:默認用來打開遊戲菜單。

3 grip按鈕:用的最少的按鈕,每一個手柄上雖然有兩個,可是是相同的。

4 trigger按鈕:扳機按鈕,用的最多,能夠有力度。

5 pad:觸摸屏+鼠標的功能,可觸摸,可點擊。

SDK下載

須要兩個插件:

SteamVR PluginUnity開發HTC vive 入門1、手柄按鈕

Vive Input UtilityUnity開發HTC vive 入門1、手柄按鈕

商城地址以下,都是免費的,下載後導入

https://www.assetstore.Unity3D.com/cn/#!/content/32647

https://www.assetstore.unity3d.com/cn/#!/content/64219

程序開發之綜述

首先,引用HTC.UnityPlugin.Vive

Unity開發HTC vive 入門1、手柄按鈕

每一個按鈕包括pad都有GetPress、GetPressDown、GetPressUp三種方法,用HandRole枚舉來肯定左右手柄,用ControllerButton枚舉來肯定是哪一個按鈕。

對於按鈕,GetPressDown是按下時觸發,GetPressUp是放開時觸發,以上兩個是個事件,GetPress是按住時一直返回ture,算是一個狀態。

對於pad,有兩種:

當ControllerButton.Pad時,和按鈕相同。

當ControllerButton.PadTouch時,GetPressDown是接觸時觸發,GetPressUp是離開時觸發,GetPress是接觸時一直返回的狀態。

Unity開發HTC vive 入門1、手柄按鈕

 

Unity開發HTC vive 入門1、手柄按鈕

除了上面的方法,還能夠經過回掉的方式實現

Unity開發HTC vive 入門1、手柄按鈕

Trigger按鈕開發

Trigger有模擬值,從0到1,沒按的時候是0,所有按下是1。能夠經過GetTriggerValue方法得到。

Unity開發HTC vive 入門1、手柄按鈕

Trigger按鈕,對應有三種,Trigger,HairTrigger,FullTrigger。

當TriggerValue在0.1到0.2時,對應HairTrigger,當TriggerValue超過0.5時對應Trigger,當TriggerValue=1時,對應FullTrigger。

能夠簡單理解爲,輕按=HairTriiger,中度按=Trigger,所有按下=FullTrigger。

Unity開發HTC vive 入門1、手柄按鈕

Pad開發

pad作那麼大,固然除了能夠按,還能夠返回位置信息。用GetPadAxis方法便可。

Unity開發HTC vive 入門1、手柄按鈕

觸碰位置信息以下圖

Unity開發HTC vive 入門1、手柄按鈕

此外,對應pad,又有接觸、按下的兩組方法。其中,Axis是座標位置,Delta是最後一幀移動位置,Vector是移動的向量。

Unity開發HTC vive 入門1、手柄按鈕

 

系列分享:

 GJM:Unity開發HTC vive 1、手柄按鈕           【傳送門

 GJM : Unity開發HTC vive 2、操做GUI           【傳送門

 GJM:Unity開發HTC vive 3、遠處拖動3D物體  【傳送門

相關文章
相關標籤/搜索