插件升级及版本兼容性

兼容性只在纯净的不包含sample的插件包所包含的文件中考虑。样例文件会在任何可能的情况下改变。

文件兼容性

文件说明 所述,插件包含两个文件夹。 EasyAR 文件夹以及发布包中 Plugins 文件夹中的文件夹是内部资源,将在不同发布版本中随时改变且不会有特殊通知。

尽管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也是可以交换的。在这种情况下, Plugins 文件夹中的EasyAR Sense库文件需要与 EasyAR/Scripts 文件夹中的csapi 文件来自于同一个EasyAR Sense发布版本。EasyAR没有在设计中提供这种兼容性,因此如果有需求,你应该自行检查可行性并自行承担风险。

接口兼容性

接口兼容性只在同一个小版本中会确保。大型接口改动会在发行说明中提及。

升级指引

唯一干净的升级方法是删除 EasyAR 文件夹以及 Plugins 文件夹中的所有 EasyAR 库文件和配置文件(如果是在系统文件管理器中删除,注意不要忘了.meta文件),并在删除后导入新的版本。在现有工程上直接导入新的发布包大多数情况下会失败,因为Unity不会处理删除的文件。这个规则对1.x、2.x及3.0版本的EasyAR Sense Unity Plugin同样适用。

下面是干净升级的步骤,

  1. 如果你不确定接下来会发生什么,备份整个工程或在版本控制系统中检出一份干净的工作空间。

  2. 删除 EasyAR 文件夹以及 Plugins 文件夹中EasyAR的文件。

  3. 导入新的插件包。

  4. 检查编译错误并修复,如果接口改变,修改API调用方式或使用替代方式。

  5. 检查场景中引用了EasyAR资源的物体,检查是否有引用丢失或是否有数值意外改变。

  6. 尽可能检查发行说明和插件接口,了解接口变化。

  7. 在插件设计发生巨大变化的时候,比如从2.0升级到3.0或4.0/3.1,需要检查所有使用到EasyAR功能的代码和场景物体,并通过新的样例来了解基本的改变。

上面这些步骤更多是建议而非规则。

不建议修改 EasyAR 文件夹中的任何文件。大多数情况下可以有其它方法达到同样的结果。如果确实需要修改,需要尽可能小范围的改动,并以足够清晰的方式标识这些改动以便在日后仍可以追溯。一种可行的方法是将修改存成单独的patch文件并在构建工程或配置代码库时应用这些patch。在升级的时候,尝试抽出这些修改并在干净的升级之后重新将这些改动应用到新的版本上。如果你认为你的改动是通用功能需求,可以联系我们,我们会考虑在今后的版本中加入。

如果没有进行干净的升级的条件,最安全的方法是对项目工程以及导入到空工程的插件进行全面的文件对比并手动合并差异。对比项目工程和老版本的插件包也会辅助让你了解哪些文件产生了改动以及产生了什么样的改动。