已知問題

目前存在幾個(gè)已知問題可(kě)能會影(yǐng)響開發工作流程。這(zhè)些問題已知,并将在未來(lái)的(de)Unity包或Snapdragon Spaces服務運行時(shí)版本中得(de)到解決。

 

如果問題不存在,請檢查SDK的(de)整體已知問題

 

Gradle構建問題

在某些情況下(xià),添加自定義控制器存檔可(kě)能導緻Gradle緩存錯誤。這(zhè)種情況下(xià),删除項目文件夾中Temp > gradleOut目錄下(xià)生成的(de)臨時(shí)Gradle項目文件夾可(kě)能會解決問題。

 

從Snapdragon Spaces SDK 0.15.0升級的(de)項目

 

在0.15.0版本之後,Think Reality A3在将應用(yòng)程序置于後台時(shí)處理(lǐ)生命周期的(de)TRIM_MEMORY标志已被移除。如果開發者在其項目中使用(yòng)了(le)0.15.0版本的(de)SDK,然後将Snapdragon Spaces插件更新到較新版本,Unity可(kě)能會緩存0.15.0版本的(de)設置,導緻後續構建時(shí)可(kě)能出現崩潰或黑(hēi)屏的(de)問題。爲避免此問題,請執行幹淨的(de)構建而非增量構建,或者删除項目的(de)庫文件夾。

 

手部跟蹤問題

一般問題:

● 頭部移動可(kě)能會導緻手部移動。

 

用(yòng)戶體驗限制:

● 隻能使用(yòng)張開手勢釋放物(wù)體。

● 在某些情況下(xià),手部之間的(de)遮擋可(kě)能導緻左右手反轉。

● 如果顯示手部虛拟形象,指尖可(kě)能會出現輕微抖動。一般不建議(yì)在AR環境中顯示虛拟形象。

 

與AR Foundation相關的(de)問題:

 

AR射線投射命中時(shí),成功後返回的(de)AR射線命中對(duì)象的(de)trackableId可(kě)能會錯誤報告。

如果在平面檢測功能設置中啓用(yòng)了(le)使用(yòng)場(chǎng)景理(lǐ)解的(de)平面檢測,AR射線命中對(duì)象的(de)ARRaycastHit.trackableId字段将始終返回0-0作爲會話(huà)唯一标識符。如果禁用(yòng)了(le)使用(yòng)場(chǎng)景理(lǐ)解的(de)平面檢測,則AR射線命中對(duì)象的(de)ARRaycastHit.trackableId将返回射線命中的(de)平面的(de)trackableId。

 

AR Mesh Manager 屬性

AR Mesh Manager 組件具有一些屬性,這(zhè)些屬性在 Snapdragon Spaces Unity 插件的(de)子系統實現中不受支持。如果在啓用(yòng)了(le)空間網格化(huà)(實驗性)功能的(de)構建中嘗試使用(yòng)任何不支持的(de)屬性,将會顯示警告。建議(yì)按照(zhào)感知樣例描述中所述,使用(yòng) Spaces AR Mesh Manager Config。

 

AR Camera Manager 和(hé) AR Camera Background 問題

在場(chǎng)景中啓用(yòng) AR Camera Manager 将會與物(wù)理(lǐ)攝像頭建立連接,以獲取其可(kě)用(yòng)性信息。在啓用(yòng) AR Camera Manager 的(de)場(chǎng)景之間頻(pín)繁切換可(kě)能會對(duì)連接産生負面影(yǐng)響,并導緻應用(yòng)程序凍結等意外結果。如非必要,建議(yì)在不需要時(shí)禁用(yòng) AR Camera Manager。

 

從 Snapdragon Spaces SDK 版本 0.20.0 開始,如果啓用(yòng)了(le) AR Camera Background 組件,在某些設備上可(kě)能會在調用(yòng) ARCameraManager.frameReceived 事件後出現渲染問題,如圖像凍結等。爲确保在所有設備上正确處理(lǐ)攝像頭幀訪問,請建議(yì)禁用(yòng)此組件。

 

同時(shí)使用(yòng)視頻(pín)捕獲或流媒體服務與攝像頭幀訪問功能可(kě)能會導緻渲染圖像異常或未處理(lǐ)異常。建議(yì)在應用(yòng)程序中處理(lǐ) YUY2 和(hé) Y'UV420sp 幀格式,因爲在這(zhè)些情況下(xià)可(kě)能會提供 YUY2 而不是 Y'UV420sp。

 

雙重渲染融合已知問題

應用(yòng)程序後台運行問題

使用(yòng)Dual Render Fusion構建的(de)應用(yòng)程序默認情況下(xià)不會在後台運行。這(zhè)是已知行爲,因爲Dual Render Fusion應用(yòng)程序在智能手機設備上前台運行,當運行其他(tā)應用(yòng)程序時(shí)會被置于後台。

 

智能手機屏幕顯示黑(hēi)屏

如果嘗試運行Fusion應用(yòng)時(shí)智能手機屏幕顯示黑(hēi)屏,請确保在OpenXR設置中啓用(yòng)了(le)Dual Render Fusion功能,并且智能手機設備運行的(de)是Snapdragon Spaces Services 0.13.0或更高(gāo)版本。另外,請驗證項目是否是使用(yòng)了(le)OpenXR 1.6.0或更高(gāo)版本構建的(de)。

即使啓用(yòng)了(le)Dual Render Fusion功能,伴随控制器仍自動啓動


啓動

如果伴随控制器仍然自動啓動,請确保在OpenXR設置中啓用(yòng)了(le)Dual Render Fusion功能,并且在基本運行時(shí)功能設置中未勾選“在查看器上啓動應用(yòng)程序”和(hé)“在主機上啓動控制器”的(de)選項。

 

眼鏡中的(de)渲染以分(fēn)屏模式顯示

這(zhè)可(kě)能是由于Snapdragon Spaces Services中未啓用(yòng)的(de)Android權限導緻的(de)。如果應用(yòng)程序處于這(zhè)種狀态,請卸載并重新安裝Snapdragon Spaces Services。執行此操作後,打開Snapdragon Spaces Services應用(yòng)并确保已啓用(yòng)“在其他(tā)應用(yòng)程序上方顯示”權限,然後重新啓動智能手機,并再次嘗試運行應用(yòng)程序。


圖片50.png


眼鏡中的(de)渲染顯示在有限的(de)水(shuǐ)平視場(chǎng)内

如果在使用(yòng)Dual Render Fusion功能的(de)應用(yòng)程序運行時(shí),眼鏡中的(de)渲染以分(fēn)屏模式顯示,這(zhè)可(kě)能是因爲Snapdragon Spaces Services未啓用(yòng)所需的(de)Android權限。在這(zhè)種情況下(xià),需要卸載并重新安裝Snapdragon Spaces Services應用(yòng)程序。執行完此操作後,請确保打開Snapdragon Spaces Services應用(yòng)程序,并确保已啓用(yòng)“在其他(tā)應用(yòng)程序上方顯示”的(de)權限。然後重新啓動您的(de)智能手機,并再次嘗試運行應用(yòng)程序。


圖片51.png


使用(yòng)動态光(guāng)照(zhào)的(de)應用(yòng)程序導緻崩潰

在某些情況下(xià),運行使用(yòng)動态光(guāng)照(zhào)的(de)應用(yòng)程序可(kě)能導緻應用(yòng)程序崩潰。在這(zhè)種情況下(xià),一些人(rén)發現離開動态光(guāng)照(zhào)可(kě)以獲得(de)更好的(de)結果。此外,某些後處理(lǐ)效果可(kě)能與智能手機屏幕兼容,但與眼鏡不兼容。

 

眼鏡中的(de)渲染表現出不同的(de)性能問題

默認情況下(xià),Unity中的(de)遊戲渲染攝像機會根據遊戲攝像機的(de)姿态渲染整個(gè)場(chǎng)景。由于雙重渲染融合會向多(duō)個(gè)攝像機進行渲染,如果場(chǎng)景過于複雜(zá),即使智能手機屏幕上隻有2D畫(huà)布,也(yě)可(kě)能會導緻性能開銷較高(gāo)。當隻渲染畫(huà)布時(shí),可(kě)以通(tōng)過将渲染到智能手機的(de)攝像機組件中的(de)Culling Mask值設置爲Nothing來(lái)優化(huà)性能。而當渲染世界空間中的(de)對(duì)象時(shí),則需在Culling Mask字段中移除除了(le)對(duì)象層之外的(de)所有内容。

 

手部跟蹤在眼鏡斷開連接時(shí)會凍結。

使用(yòng)手部跟蹤時(shí),如果眼鏡斷開連接,并且在OpenXR設置中手部跟蹤的(de)自動啓動開關被禁用(yòng),手部跟蹤将不會在重新連接眼鏡時(shí)自動重新啓動。将此開關設置爲true将會在重新連接眼鏡時(shí)重新啓動子系統,并應重新啓用(yòng)手部跟蹤功能。

 

圖片52.png


強制屏幕方向爲豎屏在未啓用(yòng)雙重渲染融合(實驗性功能)特性時(shí),可(kě)能導緻眼鏡的(de)渲染顯示不正确。

 

當直接将應用(yòng)程序啓動到眼鏡上時(shí),應用(yòng)程序的(de)默認方向必須設置爲“橫向左”。

 

請在 Project Settings > Player > Resolution and Presentation > Orientation > Default Orientation 中進行設置。

 

在腳本代碼中設置Screen.orientation = ScreenOrientation.Portrait; 可(kě)能會導緻眼鏡上的(de)渲染顯示不正确,特别是在未啓用(yòng)雙重渲染融合(實驗性功能)特性時(shí)。不正确的(de)渲染表現爲眼鏡顯示黑(hēi)屏或每隻眼睛呈現出非立體視覺。

 

請查看SDK中提供的(de)Fusion Screen Setup組件示例,了(le)解如何僅在啓用(yòng)雙重渲染融合(實驗性功能)特性時(shí)才調用(yòng)此類設置。