要爲XR
配置Unity
項目,請執行以下步驟:
- 打開
Project Settings
窗口(菜單:Edit > Project Settings
),然後選擇XR Plug-in Management
。 - 如果尚未安裝該軟件包,請單擊
Install XR Plug-in Management
。 您也可以從Package Manager
窗口中安裝它。 - 安裝完成後,選擇一個
Plug-in Provider
提供程序以爲相應的構建目標啓用它。 這樣做:- 選擇一個構建目標(例如
Android
)。 - 選中要用於該構建目標的每個插件左側的複選框。
- 選擇一個構建目標(例如
- 插件加載後,它會顯示在
XR
插件管理下的左側導航欄中。 單擊該插件爲每個構建目標配置其設置。 - 要設置跟蹤,請從
Unity
的主菜單中轉到GameObject> XR>Add XR Rig
。
注意:
- 選擇XR插件提供程序將爲相應的構建目標啓用該提供程序。 如果該插件包不存在,Unity會自動安裝它。
- 禁用插件不會自動卸載現有軟件包。 從 Package Manager.
中卸載提供程序插件。 - 有關第三方插件的列表,請參閱 Getting Started with VR Development。
在XR插件框架中設置跟蹤
在新的XR插件框架中已刪除了在2019.3之前的Unity版本中使用的隱式攝像機跟蹤。 隱式跟蹤僅適用於簡單的僅使用HMD的應用程序,但是與控制器和其他交互相關時,隱式跟蹤卻不那麼直觀。
要確保使用XR插件框架正確配置了XR跟蹤,請按照以下步驟操作。
從新Scene(場景)開始
如果您從新Scene開始,則以下說明適用,或來自滿足以下條件的Scene:
- 場景中只有一臺攝像機,並且該攝像機被標記爲主攝像機。
- 場景中的相機位於層次結構的根部。
在Unity的主菜單中,轉到 GameObject > XR > Add XR Rig
。 這將嘗試將新Scene轉換爲正確支持XR插件框架的Scene。
現在,如果您在控制檯日誌中沒有看到任何錯誤,則現在應該可以在Scene中單擊Play,並查看在XR插件管理包中配置的設備的“攝像機”軌跡。
如果Unity無法正確遷移您的場景,則控制檯日誌中會顯示錯誤。 請按照下面的從現有Scene(場景)開始
部分中的說明進行操作。
從現有Scene(場景)開始
與遷移空場景相比,從現有場景進行遷移還有其他步驟。 因此,取決於場景的配置方式,會有不同的選項。 總體目標是使場景跟蹤的方式與遷移到XR插件框架之前的方式相同。
識別場景類型
在場景中找到標記爲“主攝像機”的攝像機。 Unity使用此相機渲染到HMD或其他主要設備。
如果主攝影機是GameObject:
- 位於項目層次結構的根部,請按照遷移簡單場景的步驟進行操作。
- 不在項目層次結構的根本位置,請按照遷移複雜場景的步驟進行操作。
遷移一個簡單的場景
要遷移簡單的場景,請執行以下步驟。
1. 創建XR Rig Prefab的實例。
遷移以前位於“場景”層次結構根目錄中的攝影機,可以通過實例化XR Rig Prefab將現有攝影機交換到XR Rig。
該軟件包包含的內容。
您可以在Packages / XR Legacy Input Helpers / Prefabs文件夾中找到此Prefab。 將Prefab拖動到Scene層次結構中以創建它的新實例。
2. 移動XR裝備以匹配相機的位置。
現在您有了XR Rig Prefab的實例,您需要配置XR Rig GameObject,以便在應用程序啓動時生成的Camera位置正確。
更改XR Rig GameObject的位置和旋轉,使其與當前“主攝影機”的位置匹配。 如果您要對主攝像機應用比例轉換,請確保也將此比例應用於XR Rig GameObject。 如果您縮放XR裝備,強烈建議在所有三個軸上使用統一的縮放比例。
3. 如有必要,請複製位置更改。
如果未遷移場景中的主攝像機位於地板上方(其Y分量> 0.0f),則需要複製此位置更改。 您可以通過幾種不同的方式來執行此操作,具體取決於更改要複製的原始位置。
3.1-模擬用戶身高的擡升
如果將先前的主攝像機擡高到地板上方以模擬用戶的身高,並且該應用程序使用設備跟蹤原點(有時稱爲“固定”跟蹤模式),則“攝像機偏移”組件將執行此附加擡升操作。 否則,請參閱下一節。
要在“設備跟蹤原點”模式下使用應用程序時,將攝影機配置爲具有垂直方向的提升,請在XR裝備GameObject的“攝影機偏移”組件上設置以下選項:
Option | Value |
---|---|
Requested Tracking Mode | Device |
Camera Y Offset | Set this option to the height at which the existing Main Camera is raised to simulate user height. |
配置完這些選項後,將XR Rig GameObject的Y位置更改爲您在應用程序中通常認爲的“地板”(通常爲0.0f)。 相機偏移組件會根據需要添加任何其他的提升。
3.2-擡起表示攝像機位置
如果未遷移的場景使用“地板跟蹤原點”(歷史上稱爲“縮放比例”跟蹤模式),並且“主攝像機”的位置代表了用戶的起始點,而沒有包括他們的身高(也就是說,攝像機實際上在邏輯上“ floor”),請按照以下步驟正確遷移場景:
- 移動XR裝備,使其與Unity相機在世界空間中的當前位置和旋轉方向匹配。
- 如果應用程序使用地板跟蹤原點,請將“攝像機偏移”組件上的“請求的跟蹤模式”設置爲“地板”。這樣可以確保攝像機具有正確的垂直偏移。
- 如果應用程序不使用樓層跟蹤原點,請將“攝像機偏移”組件上的“請求的跟蹤模式”設置爲“默認”。無論應用程序以哪種設備跟蹤模式啓動,這都將應用正確的行爲。
- 如果您以前使用其他組件垂直移動“相機”並處理“設備”和“地板”追蹤原點之間的差異,則可能需要禁用或修改此組件,以使不同組件不會多次錯誤地移動“相機”。
接下來,從XR Rig實例中刪除“ Main Camera GameObject”,並將現有的“ Main Camera GameObject”作爲“ Camera Offset GameObject”的父對象。
確保主攝影機遊戲對象的位置和旋轉度均爲0,0,0。 始終更改XR Rig GameObject的位置,而不是更改相機的位置。 另外,請確保從GameObjects或組件到您的主攝像機的任何鏈接仍然正確。
5.爲XR配置您的項目
請參閱上面的爲XR配置Unity項目。
6.按播放
現在,您的場景已成功遷移,請按Play,並確保相機的起始位置與遷移到XR插件框架之前的位置相同。 如果不是,請參閱下面的“疑難解答”部分。
遷移複雜場景
如果您當前的場景正在使用來自舊版VR系統的隱式攝像機跟蹤,並且“主攝像機”是GameObject層次結構的一部分,請按照以下步驟將舊版VR跟蹤系統遷移到XR插件框架。
隱式攝影機更新將每幀兩次更新主攝影機遊戲對象的局部變換,這使主攝影機遊戲對象相對於其所在的層次結構的位置,比例和旋轉進行移動。
在這種情況下,您有兩個選擇來遷移場景:
如果您的場景具有依賴於該層次結構的功能,通常建議保留現有的層次結構。 如果您具有相對簡單的配置,則可以直接遷移到XR Rig。
留在原地
該方法只需對現有場景層次進行最少的修改即可在Unity中進行跟蹤。 它涉及到在場景中的主攝像機中添加“跟蹤姿勢”驅動程序。 這樣可以確保需要您當前GameObject層次結構的任何其他功能繼續像以前一樣起作用。
1.找到您的主相機,並向其中添加一個跟蹤姿勢驅動程序
在場景中找到主攝像機。
使用與XR Rig的主相機相同的設置來添加Tracked Pose驅動程序。 下面的屏幕截圖顯示了這些設置:
跟蹤姿勢驅動程序設置
對場景中的所有主攝像機執行此操作。 如果需要跟蹤場景中的其他設備,請參見“跟蹤姿勢驅動程序”設置,以獲取適用於您的用例的正確選項。
2.爲XR配置您的項目
查看 Configuring your Unity Project for XR 部分.
3.按播放
現在,您的場景已成功遷移,請按Play,並確保相機的開始位置與遷移到XR插件框架之前的位置相同。 如果不是,請參閱下面的“疑難解答”部分。
遷移到XR鑽機
由於正在使用的層次結構數量衆多,因此Unity無法提供具體步驟來遷移當前的場景層次結構以使用XR裝備。 請參閱“傳統輸入助手”軟件包文檔中的“ XR鑽機說明”部分,以瞭解XR鑽機打算代表的內容。 這將允許您將現有層次結構映射到XR Rig中的概念。
要將場景配置爲使用XR管理,請參見上面的“爲XR配置Unity項目”部分。
如果仍然存在問題,請參閱下面的“疑難解答”部分。
故障排除
Issue | Possible causes |
---|---|
Camera is too high in the Scene | Is the Camera Offset component’s Requested Tracking Mode set correctly? Is the Camera Y Offset set too high? |