Table of Contents

使用 license key 初始化 EasyAR sense

在 Unity 中使用 EasyAR,需要使用 license key 初始化 EasyAR sense,以確保功能被啟用。有兩種初始化方式:自動初始化和手動初始化。

初始化成功後,可以通過 Unity 控制台或操作系統日誌看到 EasyAR sense 的版本號和運行平台信息,例如:

EasyAR Sense (Android-arm64) Version 4.7.0.11800-cf8e24e30

開始之前

  • EasyAR sense 許可證 描述了如何獲取 EasyAR sense 許可證(license key)。在初始化 EasyAR sense 之前,需要根據實際使用的設備和開發階段準備好合適的許可證。

自動初始化

自動初始化適用於大部分使用場景。

打開 EasyAR 全局配置,勾選 Initialize On Startup 選項,並填寫 EasyAR Sense License > LicenseKey

alt text

自動初始化會在 Unity 的 BeforeSceneLoad 時間點自動調用。

附註

在編輯器下使用的 license 不會校驗應用包名,所以編輯器中可以正常使用的 license,在打包到平台應用或 app 運行時仍有可能失敗,這時候需要注意兩種情況:

  1. 填寫的 license 的包名與 Unity Player Settings 中填寫的 bundle id/package name 應該一致。
  2. 如果 Unity 打包後,在 gradle 或 XCode 工程中修改了包名。這時需要在 Unity 中使用 gradle 或 XCode 裡面的包名。

[可選] 手動初始化

手動初始化主要用於自定義的初始化流程,比如在調用 EasyAR 接口之前彈出用戶隱私說明(請參閱 合規指南 )等。

打開 EasyAR 全局配置 ,取消勾選 Initialize On Startup 選項。

alt text

然後使用 EasyARController.Initialize() 接口手動調用初始化。

可以通過參數傳入 license,

EasyARController.Initialize("my-license");

也可以使用 EasyAR 全局配置 中填寫的 license,

EasyARController.Initialize();
重要事項

EasyARController.Initialize() 必須在 ARSession 啟動之前調用。

在一些特殊情況下,如果要多次調用 EasyARController.Initialize(),需要確保每次 EasyARController.Initialize() 執行後通過 EasyARController.Deinitialize() 進行反初始化。

初始化失敗的解決方法

在包含了 ARSession 的場景運行後,如果日誌中沒有包含類似的信息,則說明初始化失敗。

EasyAR Sense (Android-arm64) Version 4.7.0.11800-cf8e24e30

在 Unity 編輯器中,可能還會看到類似這樣的彈窗

alt text

附註

需要注意閱讀彈窗中顯示的文字信息,並不是所有彈窗都是初始化失敗。

常見的出錯信息和原因如下:

  • EasyARSettings is not found
    • EasyAR 全局配置 資源文件未創建(常見於沒有填寫 license)
  • License Key is empty
    • EasyAR 全局配置 中未填寫 license,或工程中存在多個 EasyAR 全局配置 資源文件
  • EasyARController.Initialize is not called (InitializeOnStartup = false)
    • 手動初始化未在正確的時機調用
  • EasyAR stops after script change in play mode
    • 編輯器中運行時,腳本發生了改動。這時需要重新運行即可

相關主題