EasyAR Sense Unity Plugin 迁移指南
本文介绍如何从旧版本的 EasyAR Sense Unity Plugin 迁移到新版本。
兼容性说明
从版本 4000 开始,EasyAR Sense Unity Plugin 遵循 Unity 所要求的 包版本控制(使用 Semantic Versioning),兼容性可根据版本号判断。
4.7 是逐步更新版本,任何两个 4.7 版本都不兼容。
4.7 之前的版本,只有第三个版本号表示向后兼容性,前两个版本号的变更均表示不兼容。比如,4.6.2 与 4.6.1 兼容,但 4.6.0 与 4.5.0 不兼容。
警告
修改 tgz 文件或解压后未完整更新整个插件将导致不兼容。
通用迁移指南
迁移到新版本需要先使用 Package Manager window 删除老版本的插件包并添加新的包。
建议按如下步骤操作:
- 关闭使用中的 Unity。
- 删除 Unity 打包应用时生成的平台编译目录。
- 重新打开 Unity 工程,将老版本的 EasyAR Sense Unity Plugin 从工程中移除。
- 导入新版本的 EasyAR Sense Unity Plugin 版本。

注意
插件提供的示例文件并不保证版本间兼容。在插件升级后,导入到工程中的示例有可能无法正常工作,建议删除老版本示例后再操作。
EasyAR 包含原生库文件,如果在删除或替换前执行过库函数(打包时也会调用),这些库文件会被系统锁定无法删除或替换。
重要事项
在删除老版本之前,需要确保没有在编辑器中运行任何场景或打包任何平台的应用。通常建议删除或替换包之前先关闭 Unity,并在重新打开后立即替换。
在使用新版本插件重新打包前,需要先删除 Unity 打包生成的平台编译目录,包括打包 Android 生成的 Gradle 工程目录,以及打包 iOS 生成的 Xcode 目录。
提示
通常这些目录可能在 Unity 工程的 Library 文件夹里面(比如 Library/Bee/Android/Prj/IL2CPP/Gradle),但是不同 Unity 版本有可能不一样。
如果您打包过但找不到对应平台的目录,建议删除整个 Library 文件夹。
如果在迁移之后出现 SchemaHashNotMatched 异常,通常有两种可能
- 前述操作未正确进行导致升级失败或不完整,或是 Unity 生成的编译目录未正确更新(注意:如果未手动删除,大概率会出错)。建议按建议步骤进行操作或使用没有
Library缓存的工程重新编译。 - 手动修改了 EasyAR 的 tgz 文件或解压后未完整更新整个插件。这种情况 EasyAR 无法保证可用性,需要重新下载正确的包并导入。
重要事项
由于 EasyAR Sense 的库文件以及库文件打包后的位置可能会发生变化,如果您保留了 Unity 生成的 Gradle 或 Xcode 工程,必需提前删除所有与 EasyAR 有关的文件,比如 EasyAR.aar , libEasyAR.so , easyar.framework 等。
迁移到版本 4001
提示
仅在使用 Mega 时有不兼容改动,其它功能的使用不受影响。
从版本 4000 迁移到 4001 时,除了上述通用迁移指南之外,还需要注意以下内容。
接口变更
| 功能模块 | v4000 API | v4001 API | 使用说明 |
|---|---|---|---|
| Mega | MegaTrackerFrameFilter.ResultPoseType.EnableLocalization | MegaTrackerFrameFilter.EnableLocalization | 控制 Mega 跟踪过程 |
| Mega | MegaTrackerFrameFilter.ResultPoseType.EnableStabilization | - | 功能已删除 |
历史版本迁移
从 4000 以前的版本迁移时,需要参考以下内容: