Unity Asset Bundles向后兼容

时间:2014-04-30 22:48:10

标签: c# android ios unity3d

我正在一个项目中工作,我们使用Unity3D ...我们正在动态加载我们的资产包。但我们希望在我们的应用程序版本之间添加向后兼容性。

假设我发布版本1.05.0并且用户加载了某个Asset Bundle,之后用户下载了版本1.06.0,其中包含1.05.0版本中使用的一些脚本中的一些更改

我可以使1.06.0版本与1.05.0版本的同一资产包一起使用吗?  或那是不可行的?!

提前致谢

1 个答案:

答案 0 :(得分:3)

“某些脚本中的某些更改”非常模糊。

一般来说,资产包不直接包含脚本,但它们确实包含对脚本的引用(如果移动脚本可能会损坏)和属性(如果重构可能会变得复杂)。 Unity Answers does have some more detailed information.

如果您所做的只是对某些脚本的Update()功能稍作调整,那么您应该没问题。

如果您在程序集之间重命名脚本或移动脚本,则可能会出现问题。

如果您创建新的序列化字段,旧的资产包将不包含这些字段,并且它们将在实例化时收到其默认值。

如果删除现有的序列化字段,则在实例化时将忽略它们。

如果您重命名或更改现有序列化字段的类型,Unity将“尝试”协调它,但我不会指望它正常工作。

如果您正在寻找一个更强大的系统,您可能最好将“普通旧数据”组件附加到序列化数据,然后使用该数据在运行时重建资产。