Unity SteamVR插件集成


重要組件

SteamVR_Camera

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

使用方法:

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

l 點擊Expand按鈕

image001image002

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

image003

l Origin:位置

l Head:頭部

l Eye:眼睛

l Ears:耳朵

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

image007image006

image005image004

SteamVR_ControllerManager和SteamVR_TrackedObject

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

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

image008

1 Menu button(菜單鍵)

2 Trackpad(觸摸板)

3 System button(系統鍵/電源鍵)

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,設置左右手柄

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

image010image011image009

獲取手柄狀態

通過代碼

var device = SteamVR_Controller.Input(uint);

device.GetTouchDown(SteamVR_Controller.ButtonMask)

就可以獲取到某個按鍵的狀態

或者使用

var system = OpenVR.System;

system.GetControllerState(uint, ref VRControllerState_t))

獲取當前所有的按鍵狀態

手柄震動

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

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

使用方法

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

image012

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

SteamVR_PlayArea

用於顯示游玩區域。

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

image013

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

image014

注意事項

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

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


免責聲明!

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



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