Table of Contents

EasyAR 項目中的 AR Foundation 場景配置和用法

在 Unity 中使用 AR Foundation 往往需要依靠 EasyAR 解決 AR Foundation 的設備侷限性。以下內容介紹如何在 EasyAR 場景中正確配置和使用 AR Foundation,以及如何根據設備支持情況動態啓用 AR Foundation。

開始之前

添加 AR Foundation 組件

在 EasyAR 場景中添加 AR Foundation 的 AR Session 和 XR Origin。

添加 AR Session

Hierarchy 視圖中 空白 處點擊右鍵,通過菜單 XR > AR Session 添加 Unity 的 ARSession 到場景中。

alt text

附註

這個 AR Session 與 EasyAR 的 AR Session 不同,它們需要同時存在於場景中。

添加 XR Origin

Hierarchy 視圖中 空白 處點擊右鍵,通過菜單 XR > XR Origin (Mobile AR) 添加 Unity 的 XROrigin 到場景中。

alt text

附註

這個 XR Origin 與 EasyAR 的 XR Origin 功能是重疊的,需要使用 Unity XR Origin 而非 EasyAR 的 XR Origin。

如果場景中之前存在 EasyAR 的 XR Origin,一般名稱爲 XR Origin (EasyAR),需要將其下面的子物體移動到新創建的 XR Origin 下面,然後將 XR Origin (EasyAR) 刪除。

alt text

這時候,如果新創建的 XR Origin 下面沒有 XR Origin Child,需要手動添加。

Hierarchy 視圖中,選中 XR Origin 並點擊右鍵,通過菜單 EasyAR Sense > Origin > Origin : XR Origin Child 添加 XR Origin Child 到 XR Origin 下。

alt text

配置 Camera

如果場景中之前存在 AR 用的 Camera,會發現場景中出現了多餘的主攝像機,需要將原本的攝像機刪除。

alt text

然後選中 XR Origin 下的 Main Camera,按照 Camera 配置 的說明對攝像機進行配置。

最後,一個完整的添加了 AR Foundation 的 EasyAR 場景結構應該類似下面這樣:

alt text

注意

如果需要通過 ARCameraManager.currentConfiguration 修改 AR Foundation 的配置,需要注意部分手機自身(比如小米 10)存在問題,在修改配置之後無法獲取圖像,EasyAR 將無法使用(應用有圖像背景但 EasyAR 功能沒有任何反應),因此通常並不建議修改,如需修改需要做好 EasyAR 無法使用時的降級方案。

設備兼容與動態啓用 AR Foundation

EasyAR 兼容的設備比 AR Foundation 多很多,因此需要配置以確保應用只在需要時啓用 AR Foundation,其餘情況需要完全關閉 AR Foundation。

檢查 frame source 組件

一般來說,通過 EasyAR 菜單創建的 session 通常會自動添加 ARCoreARFoundationFrameSource 以及 ARKitARFoundationFrameSource (部分圖像跟蹤等不需要SLAM功能的除外)。

alt text

重要事項

ARCoreARFoundationFrameSource 以及 ARKitARFoundationFrameSource 是 EasyAR 提供的 frame source,用於在支持 AR Foundation 的設備上啓用 AR Foundation 功能。如果場景中的 session 不包含這些 frame source,則無法在啓用 AR Foundation 功能。

如果場景中的 session 不包含這些 frame source,可以通過菜單手動添加。

alt text

爲了在不支持 AR Foundation 的手機上運行,還需要確保 session 包含 AR Foundation 以外的 frame source。一個典型的ARSession 應該類似下面這樣,

alt text

提示

可以根據實際需要對 frame source 進行排序,在應用運行時,session 會根據設備支持情況按 transform 順序選擇第一個可用的 frame source。

僅在需要時啓用 AR Foundation

由於 AR Foundation 在手機上底層實現是 ARCore 和 ARKit,只能在有限的設備上使用,尤其是在很多國產 Android 手機上無法使用,所以通常建議僅在受支持的設備上啓用 AR Foundation 及相關功能腳本。

EasyAR 可以自動完成這些操作,該功能可以通過 在 Project Settings > EasyAR > Sense 中的 Unity XR > Unity XR Auto Switch 選項啓用或關閉。詳細說明可以參考 自動切換 Unity XR 物體

保留 AR Foundation 兼容性的場景

正確添加了 AR Foundation 組件的場景可以在 AR Foundation 包安裝或未安裝時都正常工作。

未安裝 AR Foundation 時 AR Foundation 的功能及對應 frame source 不可用,且場景中會有部分腳本缺失,屬於正常情況。

alt text alt text

提示

很多 sample 都可以在 AR Foundation 包安裝或未安裝時都正常工作。如果需要在這些 sample 中啓用 AR Foundation 支持,僅需 在 EasyAR 項目中啓用 AR Foundation 即可。

後續步驟

相關主題