目前存在幾個已知問題可(kě)能(néng)會影響開發工(gōng)作(zuò)流程。這些問題已知,并将在未來的Unity包或Snapdragon Spaces服務(wù)運行時版本中(zhōng)得到解決。
如果問題不存在,請檢查SDK的整體(tǐ)已知問題。
Gradle構建問題
在某些情況下,添加自定義控制器存檔可(kě)能(néng)導緻Gradle緩存錯誤。這種情況下,删除項目文(wén)件夾中(zhōng)Temp > gradleOut目錄下生成的臨時Gradle項目文(wén)件夾可(kě)能(néng)會解決問題。
從Snapdragon Spaces SDK 0.15.0升級的項目
在0.15.0版本之後,Think Reality A3在将應用(yòng)程序置于後台時處理(lǐ)生命周期的TRIM_MEMORY标志(zhì)已被移除。如果開發者在其項目中(zhōng)使用(yòng)了0.15.0版本的SDK,然後将Snapdragon Spaces插件更新(xīn)到較新(xīn)版本,Unity可(kě)能(néng)會緩存0.15.0版本的設置,導緻後續構建時可(kě)能(néng)出現崩潰或黑屏的問題。為(wèi)避免此問題,請執行幹淨的構建而非增量構建,或者删除項目的庫文(wén)件夾。
手部跟蹤問題
一般問題:
● 頭部移動可(kě)能(néng)會導緻手部移動。
用(yòng)戶體(tǐ)驗限制:
● 隻能(néng)使用(yòng)張開手勢釋放物(wù)體(tǐ)。
● 在某些情況下,手部之間的遮擋可(kě)能(néng)導緻左右手反轉。
● 如果顯示手部虛拟形象,指尖可(kě)能(néng)會出現輕微抖動。一般不建議在AR環境中(zhōng)顯示虛拟形象。
與AR Foundation相關的問題:
AR射線(xiàn)投射命中(zhōng)時,成功後返回的AR射線(xiàn)命中(zhōng)對象的trackableId可(kě)能(néng)會錯誤報告。
如果在平面檢測功能(néng)設置中(zhōng)啓用(yòng)了使用(yòng)場景理(lǐ)解的平面檢測,AR射線(xiàn)命中(zhōng)對象的ARRaycastHit.trackableId字段将始終返回0-0作(zuò)為(wèi)會話唯一标識符。如果禁用(yòng)了使用(yòng)場景理(lǐ)解的平面檢測,則AR射線(xiàn)命中(zhōng)對象的ARRaycastHit.trackableId将返回射線(xiàn)命中(zhōng)的平面的trackableId。
AR Mesh Manager 屬性
AR Mesh Manager 組件具(jù)有(yǒu)一些屬性,這些屬性在 Snapdragon Spaces Unity 插件的子系統實現中(zhōng)不受支持。如果在啓用(yòng)了空間網格化(實驗性)功能(néng)的構建中(zhōng)嘗試使用(yòng)任何不支持的屬性,将會顯示警告。建議按照感知樣例描述中(zhōng)所述,使用(yòng) Spaces AR Mesh Manager Config。
AR Camera Manager 和 AR Camera Background 問題
在場景中(zhōng)啓用(yòng) AR Camera Manager 将會與物(wù)理(lǐ)攝像頭建立連接,以獲取其可(kě)用(yòng)性信息。在啓用(yòng) AR Camera Manager 的場景之間頻繁切換可(kě)能(néng)會對連接産(chǎn)生負面影響,并導緻應用(yòng)程序凍結等意外結果。如非必要,建議在不需要時禁用(yòng) AR Camera Manager。
從 Snapdragon Spaces SDK 版本 0.20.0 開始,如果啓用(yòng)了 AR Camera Background 組件,在某些設備上可(kě)能(néng)會在調用(yòng) ARCameraManager.frameReceived 事件後出現渲染問題,如圖像凍結等。為(wèi)确保在所有(yǒu)設備上正确處理(lǐ)攝像頭幀訪問,請建議禁用(yòng)此組件。
同時使用(yòng)視頻捕獲或流媒體(tǐ)服務(wù)與攝像頭幀訪問功能(néng)可(kě)能(néng)會導緻渲染圖像異常或未處理(lǐ)異常。建議在應用(yòng)程序中(zhōng)處理(lǐ) YUY2 和 Y'UV420sp 幀格式,因為(wèi)在這些情況下可(kě)能(néng)會提供 YUY2 而不是 Y'UV420sp。
雙重渲染融合已知問題
應用(yòng)程序後台運行問題
使用(yòng)Dual Render Fusion構建的應用(yòng)程序默認情況下不會在後台運行。這是已知行為(wèi),因為(wèi)Dual Render Fusion應用(yòng)程序在智能(néng)手機設備上前台運行,當運行其他(tā)應用(yòng)程序時會被置于後台。
智能(néng)手機屏幕顯示黑屏
如果嘗試運行Fusion應用(yòng)時智能(néng)手機屏幕顯示黑屏,請确保在OpenXR設置中(zhōng)啓用(yòng)了Dual Render Fusion功能(néng),并且智能(néng)手機設備運行的是Snapdragon Spaces Services 0.13.0或更高版本。另外,請驗證項目是否是使用(yòng)了OpenXR 1.6.0或更高版本構建的。
即使啓用(yòng)了Dual Render Fusion功能(néng),伴随控制器仍自動啓動
啓動
如果伴随控制器仍然自動啓動,請确保在OpenXR設置中(zhōng)啓用(yòng)了Dual Render Fusion功能(néng),并且在基本運行時功能(néng)設置中(zhōng)未勾選“在查看器上啓動應用(yòng)程序”和“在主機上啓動控制器”的選項。
眼鏡中(zhōng)的渲染以分(fēn)屏模式顯示
這可(kě)能(néng)是由于Snapdragon Spaces Services中(zhōng)未啓用(yòng)的Android權限導緻的。如果應用(yòng)程序處于這種狀态,請卸載并重新(xīn)安(ān)裝(zhuāng)Snapdragon Spaces Services。執行此操作(zuò)後,打開Snapdragon Spaces Services應用(yòng)并确保已啓用(yòng)“在其他(tā)應用(yòng)程序上方顯示”權限,然後重新(xīn)啓動智能(néng)手機,并再次嘗試運行應用(yòng)程序。
眼鏡中(zhōng)的渲染顯示在有(yǒu)限的水平視場内
如果在使用(yòng)Dual Render Fusion功能(néng)的應用(yòng)程序運行時,眼鏡中(zhōng)的渲染以分(fēn)屏模式顯示,這可(kě)能(néng)是因為(wèi)Snapdragon Spaces Services未啓用(yòng)所需的Android權限。在這種情況下,需要卸載并重新(xīn)安(ān)裝(zhuāng)Snapdragon Spaces Services應用(yòng)程序。執行完此操作(zuò)後,請确保打開Snapdragon Spaces Services應用(yòng)程序,并确保已啓用(yòng)“在其他(tā)應用(yòng)程序上方顯示”的權限。然後重新(xīn)啓動您的智能(néng)手機,并再次嘗試運行應用(yòng)程序。
使用(yòng)動态光照的應用(yòng)程序導緻崩潰
在某些情況下,運行使用(yòng)動态光照的應用(yòng)程序可(kě)能(néng)導緻應用(yòng)程序崩潰。在這種情況下,一些人發現離開動态光照可(kě)以獲得更好的結果。此外,某些後處理(lǐ)效果可(kě)能(néng)與智能(néng)手機屏幕兼容,但與眼鏡不兼容。
眼鏡中(zhōng)的渲染表現出不同的性能(néng)問題
默認情況下,Unity中(zhōng)的遊戲渲染攝像機會根據遊戲攝像機的姿态渲染整個場景。由于雙重渲染融合會向多(duō)個攝像機進行渲染,如果場景過于複雜,即使智能(néng)手機屏幕上隻有(yǒu)2D畫布,也可(kě)能(néng)會導緻性能(néng)開銷較高。當隻渲染畫布時,可(kě)以通過将渲染到智能(néng)手機的攝像機組件中(zhōng)的Culling Mask值設置為(wèi)Nothing來優化性能(néng)。而當渲染世界空間中(zhōng)的對象時,則需在Culling Mask字段中(zhōng)移除除了對象層之外的所有(yǒu)内容。
手部跟蹤在眼鏡斷開連接時會凍結。
使用(yòng)手部跟蹤時,如果眼鏡斷開連接,并且在OpenXR設置中(zhōng)手部跟蹤的自動啓動開關被禁用(yòng),手部跟蹤将不會在重新(xīn)連接眼鏡時自動重新(xīn)啓動。将此開關設置為(wèi)true将會在重新(xīn)連接眼鏡時重新(xīn)啓動子系統,并應重新(xīn)啓用(yòng)手部跟蹤功能(néng)。
強制屏幕方向為(wèi)豎屏在未啓用(yòng)雙重渲染融合(實驗性功能(néng))特性時,可(kě)能(néng)導緻眼鏡的渲染顯示不正确。
當直接将應用(yòng)程序啓動到眼鏡上時,應用(yòng)程序的默認方向必須設置為(wèi)“橫向左”。
請在 Project Settings > Player > Resolution and Presentation > Orientation > Default Orientation 中(zhōng)進行設置。
在腳本代碼中(zhōng)設置Screen.orientation = ScreenOrientation.Portrait; 可(kě)能(néng)會導緻眼鏡上的渲染顯示不正确,特别是在未啓用(yòng)雙重渲染融合(實驗性功能(néng))特性時。不正确的渲染表現為(wèi)眼鏡顯示黑屏或每隻眼睛呈現出非立體(tǐ)視覺。
請查看SDK中(zhōng)提供的Fusion Screen Setup組件示例,了解如何僅在啓用(yòng)雙重渲染融合(實驗性功能(néng))特性時才調用(yòng)此類設置。