Unity Steam_VR Camera

重要組件

SteamVR_Camera

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

使用方法:ui

在任一個攝像機上增長腳本3d

點擊Expand按鈕blog

image001image002

完成以上操做後,本來的攝像機會變成以下結構遊戲

image003

Origin:位置ip

Head:頭部get

Eye:眼睛同步

Ears:耳朵it

至此,遊戲中Vive中能夠看到遊戲畫面,360度旋轉查看遊戲世界,在遊戲世界中移動等io

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的值,默認狀況下都會自動設置,若是手動設置錯誤將致使錯誤的表現

相關文章
相關標籤/搜索