Unity资产捆绑向后兼容性

本文关键字:兼容性 Unity | 更新日期: 2023-09-27 18:00:57

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

假设我发布了1.05.0版本,用户加载了某个资产捆绑包,之后用户下载了1.06.0版本,其中包含1.05.0版本中使用的一些脚本的一些更改

我可以让版本1.06.0与版本1.05.0的相同资产捆绑包一起工作吗?!或者这是不可行的?!

提前感谢

Unity资产捆绑向后兼容性

"某些脚本中的一些更改"相当模糊。

一般来说,资产捆绑包不直接包括脚本,但它们确实包括对脚本(如果移动脚本,可能会损坏(和属性(如果重构,可能会变得复杂(的引用。Unity Answers确实有一些更详细的信息。

如果您所做的只是对某个脚本的Update()函数进行一些小的调整,那么您应该可以了。

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

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

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

如果您重命名或更改现有序列化字段的类型,Unity将"尝试"协调这一点,但我不指望它能起作用。

如果你正在寻找一个更健壮的系统,你可能最好附加"普通旧数据"组件来序列化你的数据,然后在运行时使用这些数据来重建你的资产。