【HTCVIVE】Unity SteamVR插件集成

重要組件

SteamVR_Camera

VR攝像機,主要功能是將Unity攝像機的畫面進行變化,形成Vive中的成像畫面

使用方法:

l 在任一個攝像機上增加腳本

l 點擊Expand按鈕

完成以上操作后,原本的攝像機會變成如下結構

l Origin:位置

l Head:頭部

l Eye:眼睛

l Ears:耳朵

至此,游戲中Vive中可以看到游戲畫面,360度旋轉查看游戲世界,在游戲世界中移動等

SteamVR_ControllerManager和SteamVR_TrackedObject

控制器,主要用于設置和檢測Vive控制器。

Vive控制器由菜單鍵(ApplicationMenu),觸摸板(Touchpad),系統(tǒng)鍵/電源鍵(System),扳機鍵(Trigger),側柄鍵(Grip),組成

1 Menu button(菜單鍵)

2 Trackpad(觸摸板)

3 System button(系統(tǒng)鍵/電源鍵)

4 Status light

5 Micro-USB port

6 Tracking sensor

7 Trigger(扳機鍵)

8 Grip button(側柄鍵)

使用方法

在Origin物體上添加2個子物體代表Vive的2個手柄,增加SteamVR_TrackedObject,Index設置為None

在Origin物體上添加SteamVR_ControllerManager,設置左右手柄

至此就完成了手柄的集成。

獲取手柄狀態(tài)

通過代碼

var device = SteamVR_Controller.Input(uint);

device.GetTouchDown(SteamVR_Controller.ButtonMask)

就可以獲取到某個按鍵的狀態(tài)

或者使用

var system = OpenVR.System;

system.GetControllerState(uint, ref VRControllerState_t))

獲取當前所有的按鍵狀態(tài)

手柄震動

public void TriggerHapticPulse(ushort durationMicroSec = 500, EVRButtonId buttonId = EVRButtonId.k_EButton_SteamVR_Touchpad)

{

var system = OpenVR.System;

if (system != null)

{

var axisId = (uint)buttonId - (uint)EVRButtonId.k_EButton_Axis0;

system.TriggerHapticPulse(ControllerIndex, axisId, (char)durationMicroSec);

}

}

或者

var device = SteamVR_Controller.Input(uint);

device. TriggerHapticPulse();

SteamVR_RenderModel

該組件用于渲染手柄的模型,并且跟蹤手柄的位置

使用方法

在左右手柄的物體下創(chuàng)建一個子物體,子物體上添加SteamVR_RenderModel腳本,Shader可以根據需求設置,比如設置為Standard

至此,游戲中可以看到手柄模型和手柄位置同步

SteamVR_PlayArea

用于顯示游玩區(qū)域。

使用方法,在Origin物體上添加該腳本即可

可以看到游戲場景中多了一個顯示區(qū)域

注意事項

制作UI的時候需要使用世界坐標,通過不同相機的Depth復合,目前還不支持(2016/5/23)

注意ControlIndex的值,默認情況下都會自動設置,如果手動設置錯誤將導致錯誤的表現

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • This article is a record of my journey to learn Game Deve...
    蔡子聰閱讀 3,859評論 0 9
  • VRTK是由一些大神對SteamVR進行一定的優(yōu)化后封裝出來的便捷快速VR開發(fā)工具,下面一步一步來了解這個神插件。...
    砍了那只鴨閱讀 7,338評論 3 15
  • 今天和同事去實體店體驗完手機在回來的路上,同事說:“我要趕緊去換個手機,要是能中一千塊錢獎多好。哈哈,不行,一千太...
    云木子閱讀 339評論 0 0
  • 歲月深處,誰孤獨,誰寂寞?冷暖自知,無處可量,未能可裁。比較來,比較去,日子過了大半,幾許的光陰,在攀比計較的爭鋒...
    斑馬和花閱讀 242評論 0 0
  • 每個人的一生都是一趟終究會駛向終點的列車,無人駕駛,中途有很多站,乘客上了又下,沒有人會一直陪你到最后,除了你自己...
    小怪圣閱讀 661評論 0 1