在資源商店中下載最新的steamVR插件(https://kharma.unity3d.com/en/#!/content/32647)導入項目中。api
Failed to load IVRRenderModels interface version IVRRenderModels_005數組
Steam官方論壇的中有討論到這個問題,請仔細看。https://steamcommunity.com/app/358720/discussions/0/357286663674402763/app
Assets/Plugins/openvr_api.cs 函數
這直接封裝了steamvr SDK的支持。
是必須的腳本。它提供的全部功能steamvr暴露。不建議你作
更改此文件。應與相關的openvr_api DLL同步。spa
系統的初始化和關閉。使用SteamVR.instance 訪問。因爲任何緣由,若是初始化失敗,則可能返回null。.net
Assets/ SteamVR / Scripts / SteamVR_Camera.cs VR攝像機,主要功能是將Unity攝像機的畫面進行變化,造成Vive中的成像畫面插件
爲了對抗畸變校訂引發的拉伸,以更高的分辨率渲染場景。 因爲Unity中的全部相機都是順序渲染的,因此在每一個 眼睛相機之間共享一個靜態渲染紋理。3d
SteamVR提供了一個特定的渲染目標大小,以減輕失真, 然而,渲染到更高的分辨率會在相關 費用下提供額外的多采樣優點。這能夠經過SteamVR_Camera.sceneResolutionScale控制。orm
注意:GUILayer和FlareLayer與SteamVR_Camera不兼容,由於它們在屏幕空間 而不是世界空間中渲染。對象
這些將自動移動SteamVR_GameView對象,該對象自己將自動 添加到SteamVR_Camera的父'head'對象。AudioListener也被轉移到頭部,以便 音頻被適當的空間化。
使用特殊的渲染路徑將指定的texture合成到虛擬曲面上的場景中,以 提升保真度。
該 HMD有一個設置爲自動。對於控制器,選擇要映射到的對象的索引。通常來講, 您應該將這些對象加載到相機的「origin」對象,以便它們在相同的空間中跟蹤。可是,若是 不方便,您能夠在TrackedObject自己中指定「origin」。
SteamVR_PlayArea
用於顯示玩家可遊玩區域。使用方法,在Origin物體上添加該腳本便可
控制器,主要用於設置和檢測Vive控制器。
Vive控制器由菜單鍵(ApplicationMenu),觸摸板(Touchpad),系統鍵/電源鍵(System),扳機鍵(Trigger),側柄鍵(Grip),組成
使用方法:
在Origin物體上添加2個子物體表明Vive的2個手柄,增長SteamVR_TrackedObject,Index設置爲None
在Origin物體上添加SteamVR_ControllerManager,設置左右手柄
在origin上再加一個子對象主相機做爲head如圖,加上steam vr_tracked object
關於控制器的相關信息都包含在SteamVR_Controller這個腳本之中。注意:SteamVR_Controller是非Monobehavior的腳本,並無掛在場景下,其運行是經過SteamVR_Render腳本對於其中Update()函數的調用從而一直循環獲取手柄相關信息。
而SteamVR_Render腳本是在程序運行時自動加載至場景。
ButtonMask類:手柄各按鍵的名稱。
Device類:最重要的類,封裝了跟蹤設備的所有信息。
Update()函數:被SteamVR_Render腳本調用,更新各跟蹤設備的信息。
Input()函數:根據Index初始化Device[]數組,並實例化全部16個Device。
詳細SteamVR_Controller類內容能夠參考博客:Unity SteamVR插件詳解一:SteamVR_Controller腳本分析+Vive控制器功能開發。