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),系統鍵/電源鍵(System),扳機鍵(Trigger),側柄鍵(Grip),組成
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,設置左右手柄
至此就完成了手柄的集成。
獲取手柄狀態
通過代碼
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
至此,游戲中可以看到手柄模型和手柄位置同步
SteamVR_PlayArea
用於顯示游玩區域。
使用方法,在Origin物體上添加該腳本即可
可以看到游戲場景中多了一個顯示區域
注意事項
制作UI的時候需要使用世界坐標,通過不同相機的Depth復合,目前還不支持(2016/5/23)
注意ControlIndex的值,默認情況下都會自動設置,如果手動設置錯誤將導致錯誤的表現