本文為 SteamVR 插件使用文檔系列文章的第二篇,主要講述有關 Render Models(渲染模式)的內容。
文章目錄
2 Render Models(渲染模式)
??2.1 The Component(組件)
??2.2 Attaching Objects(附著對象)
??2.3 Notes(注意)
2 Render Models(渲染模式)
由于沉浸在虛擬現(xiàn)實中時您的整個視野都會被覆蓋,因此擁有您所握持的控制器的虛擬化顯示會很有幫助。SteamVR 插件提供了一種簡單的方法,不僅可以獲取通用控制器模型,還可以獲取具有單獨驅動組件的模型。 因此,當我們在現(xiàn)實生活中扣動控制器上的扳機時,我們也可以在虛擬世界(場景)中看到虛擬化的手柄上的按鍵也在拉動。 這有助于提高可用性并有力地提升真實感。
2.1 The Component(組件)
交互系統(tǒng)和簡單示例場景都有使用渲染模型的裝備。 在 [Camera Rig] 預制件的 Simple Sample 場景中,您將找到Controller (left)和Controller (right)。 這些游戲對象上有一個SteamVR_Behaviour_Pose組件,用于設置變換的位置和旋轉。

在這些對象下,您將看到名為Model的 GameObjects,其中包含我們的SteamVR_RenderModel組件。 它有幾個成員:

-
Index 索引:這是控制器的 “跟蹤設備索引”。 它是渲染模型系統(tǒng)用來向底層系統(tǒng)標識控制器的整數(shù) id。 在之前的 SteamVR 迭代中,這也用于訪問該控制器上的輸入,但現(xiàn)在這是通過 “輸入系統(tǒng)” 完成的。 -
Model Override 模型覆蓋:通常出于測試目的,您可以指定要顯示的模型,而不是動態(tài)評估連接的設備類型。 -
Shader 著色器:如果您更喜歡使用不同的著色器來渲染模型,您可以在此處指定它。 默認情況下,使用 Unity 的標準著色器。 -
Verbose 詳細:將輸出調試日志以告訴您腳本發(fā)生了什么。 -
Create Components 創(chuàng)建組件:在勾選的情況下為每個組件創(chuàng)建單獨的游戲對象。 -
Update Dynamically 動態(tài)更新:將移動單個組件與其物理對應物內聯(lián)。
2.2 Attaching Objects(附著對象)
開發(fā)人員通常希望將游戲對象附加到控制器上的特定點,例如抓取物體時,我們希望物體附著在手柄的某個點上。為此,我們在控制器的每個部分下放置了一個名為 “attach” 的游戲對象,該部分以相關部分為中心。 為便于訪問,您可以訪問SteamVR_RenderModel腳本并調用GetComponentTransform(string componentName),它將返回 \a Transform(不進行任何 GC 分配)。 此處的 componentName 參數(shù)區(qū)分大小寫,因此請確保傳入的組件名稱與運行時在 Hierarchy 視圖中顯示的完全相同。

2.3 Notes(注意)
SteamVR_RenderModel 組件需要與設置其索引的對象位于同一游戲對象上。 在[CameraRig]預制件中,這是由SteamVR_Behaviour_Pose腳本完成的。