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 選單建立的工作階段通常會自動新增 ARCoreARFoundationFrameSource 以及 ARKitARFoundationFrameSource (部分圖像跟蹤等不需要SLAM功能的除外)。

alt text

重要事項

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

如果場景中的工作階段不包含這些 frame source,可以透過選單手動新增。

alt text

為了在不支援 AR Foundation 的手機上執行,還需要確保工作階段包含 AR Foundation 以外的 frame source。一個典型的ARSession 應該類似下面這樣,

alt text

提示

可以根據實際需要對 frame source 進行排序,在應用執行時,工作階段會根據設備支援情況按 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 即可。

後續步驟

相關主題