使用 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

自動初始化會在 Unity 的 BeforeSceneLoad 時間點自動調用。
附註
在編輯器下使用的 license 不會校驗應用包名,所以編輯器中可以正常使用的 license,在打包到平台應用或 app 運行時仍有可能失敗,這時候需要注意兩種情況:
- 填寫的 license 的包名與 Unity Player Settings 中填寫的 bundle id/package name 應該一致。
- 如果 Unity 打包後,在 gradle 或 XCode 工程中修改了包名。這時需要在 Unity 中使用 gradle 或 XCode 裡面的包名。
[可選] 手動初始化
手動初始化主要用於自定義的初始化流程,比如在調用 EasyAR 接口之前彈出用戶隱私說明(請參閱 合規指南 )等。
打開 EasyAR 全局配置 ,取消勾選 Initialize On Startup 選項。

然後使用 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 編輯器中,可能還會看到類似這樣的彈窗

附註
需要注意閱讀彈窗中顯示的文字信息,並不是所有彈窗都是初始化失敗。
常見的出錯信息和原因如下:
- 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
- 編輯器中運行時,腳本發生了改動。這時需要重新運行即可