如果它们是monobehaviour,如何通过序列化保存对象

时间:2016-06-06 08:08:48

标签: c# unity3d

我想保存我的应用程序状态,所以我开始创建加载并保存序列化函数。

然后我就撞墙了;当我意识到默认情况下,任何monobehaviour都无法序列化。

所以我告诉自己,我将把类包装在一个可序列化的对象中;但即使在这种情况下,我相信你不能拥有一个单体行为物体并将其标记为可序列化物体。

从我的沙发上跳下来结束这一生;我真的希望有一种方法可以避免复制各种类中的所有元素(到目前为止,我有16个类,每个类都带有由其他类类型的列表或字典组成的各种对象集合),以实际保存我的状态应用

我将永远编写一个方法,从每个类的每个对象中获取每个值;虽然我的印象是保存每个对象,但至少我可以从保存的对象中检索数据并在加载时替换当前数据。

1 个答案:

答案 0 :(得分:0)

在保存复杂数据结构时,我总是使用protobuf.Net Here是NuGet包的链接。我还建议您按照this教程进行更深入的了解。本教程非常详细,它解释了如何创建存储数据所需的一切。我已多次使用它,可以保证它与平台无关。而且我确定你可以在MonoBehavi上创建一个ProtoContract。您只需在ProtoBuf项目中重新创建类结构。