Table of Contents

在 XR 頭戴式顯示器或眼鏡上使用 EasyAR 範例

EasyAR 對所有頭戴式顯示器提供統一的範例,範例中沒有任何代碼,全部由場景中配置實現。功能本身的使用可以參考相關功能在 Android/iOS 手機上範例實現。

頭戴式顯示器範例名稱為 Combination_BasedOn_* , 比如 Pico 的範例為 Combination_BasedOn_Pico。該範例在一個場景中演示了大部分 EasyAR 功能,它們可以動態開關,可以單獨使用,也可以同時打開。

準備工作

  • 確定您的頭戴式顯示器或眼鏡當前在 EasyAR 支援清單
  • 下載並匯入 EasyAR Unity 插件套件
  • 下載並匯入 EasyAR Unity XR設備擴充套件
  • 取得適合 XR 頭戴式顯示器或眼鏡的 EasyAR 授權,頭戴式顯示器或眼鏡可用 License 類型包括
    • EasyAR Sense 4.x XR License 試用版(試用,在 EasyAR 網站自主開通)
    • EasyAR Sense 4.x XR License 正式版(付費後使用,請聯繫商務購買開通)
    • EasyAR Sense 4.x XR License 企業版(企業版 SDK 使用)
注意

頭戴式顯示器和眼鏡上僅允許使用 XR License,普通 License 無法使用 EasyAR 功能。

匯入官方範例

  1. 內建支援的設備範例位於 EasyAR Unity 插件套件中,根據設備單獨匯入需要的範例。 xr-samples-location

  2. 透過擴充支援的設備範例隨對應的頭戴式顯示器擴充一起分發。可以使用 Unity 將範例匯入工程中。以Pico為例。 xr-pico-extension

範例打包並執行

分別完成頭戴式顯示器工程配置和範例使用說明。

  • 嚴格參照對應頭戴式顯示器官方的文件和說明做好對應的配置,EasyAR 文件中不會覆蓋相關內容。

  • 按照 EasyAR 文件中各平台說明進行配置。

    Android: 請參考 Android 工程配置

    visionOS: 請參考 visionOS 工程配置

    XREAL 除了按照 Android 平台設定外,額外需要 XREAL 工程配置

  • 範例打包 在 Unity 裡打包範例使用,並部署到設備上執行。具體方法參見 Unity上執行範例

用法說明

範例內建多個按鈕,其具體功能如下。 xr-sample-usage-7

  • 按鈕1 HUD:切換UI顯示模式,初始狀態UI會固定在現實世界中,打開HUD之後UI會始終顯示在眼前。
  • 按鈕2 Record:開關EIF錄製。打開之後必須關閉才能錄製正常的EIF文件,否則錄出來的文件將無法使用。
  • 按鈕3 Image:開關圖像追蹤。
  • 按鈕4 Image Fusion:開關圖像追蹤+運動融合模式。
  • 按鈕5 Dense:開關稠密空間建圖。
  • 按鈕6 Sparse:開關稀疏空間建圖。
  • 按鈕7 Mega:開關 Mega。

功能詳解

  • 預設功能開關

    所有功能啟動時預設都是關閉的,這是透過在編輯器上將對應指令碼停用實現的,按鈕操作操作的是對應指令碼的啟用/停用,可以根據實際要執行的範例設定預設啟用的功能。

    hmd-default-disable

  • 坐標系原點參照

    範例中在運動追蹤的坐標系原點都放置了一個靜止的熊貓模型,用於檢查運動追蹤狀態。這個模型對於解耦問題是有幫助的,比如在執行 Mega 的時候,有些快速漂移就是設備運動追蹤(即設備自身缺陷)導致的,這時候這個模型也會跟著一起漂移/可以根據需要,調整或刪除這個熊貓模型。

  • 使用內嵌圖像追蹤的識別圖

    • 範例中預設了平面圖像追蹤使用的圖像的大小,您需要使用 A4 紙列印 namecard.jpg,必須保持圖像的比例不拉伸,不裁剪,盡量充滿紙張(下圖)。 namecard

    • 測量列印完成紙張上名片圖案的長度,根據測量的結果,需將 Unity 場景中 Image TargetScale 設為與真實物理大小一致(單位是米)。 set-the-actual-size

    • EasyAR 運動融合 打開時,只能追蹤固定位置(不能移動)的圖像。如果運動融合關閉,圖像超出視野的時候就無法追蹤。

    • 有時候眼鏡視角不能很好的反應相機圖像大小,如果識別不到可以嘗試讓眼鏡相機靠近圖像。實際使用時建議追蹤更大的圖像,比如 5米*5米 大小。

附註

在頭戴式顯示器上無論 EasyAR 運動融合功能是開是關,image targetScale 參數都必須設定為真實的物理大小,否則顯示位置會是錯誤的。