插件升级及版本兼容性¶
兼容性只在插件本体中会被考虑。样例文件会在任何可能的情况下改变。
文件兼容性¶
尽管EasyAR Sense Unity Plugin 是源码发布,但在不同版本间并不提供文件级别的兼容性。你需要将 EasyAR Sense Unity Plugin 当成一个整体,就像一组互相依赖的 "DLLs"。
EasyAR Sense兼容性¶
EasyAR Sense Unity Plugin内包含 EasyAR Sense。插件只能与同一个发布包中的 EasyAR Sense一同使用。在某些特殊情况下,如果EasyAR Sense Unity Plugin 在不同版本间改变不多,EasyAR Sense也是可以交换的。在这种情况下, Packages/com.easyar.sense/Runtime/Binding 文件夹中的所有文件需要来自于同一个EasyAR Sense发布版本。EasyAR没有在设计中提供这种兼容性,因此如果有需求,你应该自行检查可行性并自行承担风险。
接口兼容性¶
从版本4000开始,EasyAR Sense Unity Plugin 遵循Unity所要求的 包版本控制(使用Semantic Versioning) ,兼容性可根据版本号判断。
升级指引¶
使用 Package Manager window 删除老版本的 EasyAR Sense 包并添加新的包即可。在插件升级后,导入到工程中的Sample可能无法正常工作,建议删除老sample并使用新的包重新导入。
EasyAR包含native库文件,按普通Unity的package理解操作可能会出错,通常建议按如下步骤操作:
关闭使用中的Unity
删除Unity打包生成的平台编译目录(Android的Gradle工程目录,以及iOS的XCode目录)或整个Library文件夹。通常这些目录可能在Unity工程的Library文件夹里面且不同Unity版本不一样(比如 Library/Bee/Android/Prj/IL2CPP/Gradle),如果你找不到,建议删除整个Library文件夹。
重新打开Unity工程,将老版本的EasyAR Sense Unity Plugin从工程中移除
导入需要更新的EasyAR Sense Unity Plugin版本
注意
在删除老版本之前,请确保你没有在编辑器中运行任何场景或打包任何平台的应用。如果存在这样的情况,EasyAR Sense的Windows或MacOS库将会被Unity加载并导致删除失败或删除不完全。通常建议删除或替换包之前先关闭Unity,并在重新打开后立即替换。
注意
重新打包前,确保删除Unity打包生成的平台编译目录,如果你找不到,建议删除整个Library文件夹。否则可能运行时会出错。
注意
关于 SchemaHashNotMatched 异常:通常出现这个错误有两种可能
前述操作未正确进行导致升级失败或不完整,或是Unity生成的编译目录未正确更新(注意:如果交给Unity自己,那大概率会出错)。建议按前面操作进行或使用没有Library缓存的工程重新编译,注意由于EasyAR Sense的库文件可能会变,如果你保留了Unity生成的Gradle或XCode工程,必需提前所有与EasyAR有关的文件,比如
EasyAR.aar,libEasyAR.so,easyar.framework等。手动修改了EasyAR的tgz文件或解压后未完整更新整个插件。这种情况EasyAR不做支持,你需要自己保证文件的正确性。
迁移到4.3¶
这段覆盖EasyAR Sense Unity Plugin 早期版本与4.3的差异。
如果你在从4.2或更低的版本上升级,需要删除老插件的所有文件,然后通过Unity的 Package Manager window 进行干净的导入。这些文件可能在 Assets/EasyAR 、 Assets/Plugins 、 Assets/Samples 和 Assets/StreamingAssets 文件夹中存在。
迁移到4.4¶
这段覆盖EasyAR Sense Unity Plugin 4.3与4.4的差异。
prefab已经标记为过时,并将在将来的发布中删除。只要有可能,请删除插件包prefab的使用。如果继续使用这些prefab会有warning log,且这些log中包含在新的插件中如何替代的简短指引。你可以可以阅读详细文档内容或新的样例来学习如何在这个版本中创建AR场景。
VIOCameraDeviceUnion 已经标记为过时,并将在将来的发布中删除。如果继续使用这个组件会有warning log,且这些log中包含在新的插件中如何替代的简短指引。你可以阅读详细文档内容或新的样例来学习如何在这个版本中创建AR场景。
一些其它API也有所改变,可以阅读 API参考手册 来了解新API的使用。
有一些公有方法的XML注释中标记为了 internal,且未列在 API参考手册 中,尽可能避免使用这些接口,它们可能会在今后的一些版本中被替代。
迁移到4.6¶
这段覆盖EasyAR Sense Unity Plugin 4.5与4.6的差异。
prefab已删除。 如场景中仍在使用老版本的prefab,请阅读详细文档内容或新的样例来学习如何在这个版本中创建AR场景。
VIOCameraDeviceUnion已删除。 如场景中仍在使用老版本的这个组件,请阅读详细文档内容或新的样例来学习如何在这个版本中创建AR场景。
AR Foundation 支持已被拆成独立的package。 请阅读 AR Foundation 场景构建 来了解应该如何在EasyAR环境下使用AR Foundation。如不需要使用,请删除场景中AR Session下的 AR Foundation 节点以及代码中对 ARFoundationFrameSource 的使用。
Nreal 支持已被拆成独立的package。 请阅读 EasyAR的头显支持 来了解应该如何在EasyAR环境下使用Nreal。如不需要使用,请删除场景中AR Session下的 Nreal 节点以及代码中对 NrealFrameSource 的使用。使用Nreal时不再需要创建虚拟的package。
一些其它API也有所改变,可以阅读 API参考手册 来了解新API的使用。
迁移到4.7或4000.0¶
这段覆盖EasyAR Sense Unity Plugin 4.6与4000.0的差异。
备注
4.7是Mega开发用逐步更新版本。其中有很多子版本,具体接口变化需根据具体版本号确定。
4.7的生命周期已结束,建议使用4.7版本的用户尽快升级到4000.0。
大量接口和脚本改动。 建议删除场景中的ARSession并通过菜单重新创建。
稀疏空间地图接口已拆分。 使用稀疏空间地图需要参考sample和API文档调整代码以及场景中物体。
部分默认参数已变更。 建议删除场景中的ARSession并通过菜单重新创建。
sample已全部重写。 删除和增加了一些sample,如之前有导入需要删除后重新导入。
调整和新增诊断功能。 请参考 消息输出
XREAL支持已内建于EasyAR Sense。 请阅读 EasyAR的头显支持 来了解应该如何在EasyAR环境下使用XREAL。使用XREAL时不再需要导入单独的package。
AR Foundation 支持已重写。 请阅读 AR Foundation 场景构建 来了解应该如何在EasyAR环境下使用AR Foundation。建议删除场景中的ARSession并通过菜单重新创建。