0

我正在用 Unity3D 构建游戏。我有一个名为 GameInstance 的类,其中包含所有当前游戏实例数据。它包含多个子类,例如该Player属性将返回一个Player对象。

然而,所有对象都是简单的键/值对象,它只是数据。现在我需要序列化所有这些并将其保存到一个文件中,这样我就可以重新加载它以从它离开的地方重新开始游戏。

这就是我基本上打算做的事情,也许有人会有更好的建议,但这是我发现的最灵活的选择。

我过去使用过 .NET XML 对象序列化,但已经有一段时间了,我需要对此有更直接的建议。例如,我应该序列化为 XML 还是 JSON?

TL;DR:我想在 Unity3D 项目中使用 C#/.NET 序列化整个类及其所有内容。我应该如何进行?

谢谢!

4

1 回答 1

1

我个人更喜欢json。如果您使用的是 json.NET,这将很简单;

  string json = JsonConvert.SerializeObject(MyObject);

或压缩它;

   File.WriteAllText("./myfile", JsonConvert.SerializeObject(MyObject));

然后反序列化你就可以了;

   MyObject obj = JsonConvert.DeserializeObject<MyObject>(File.ReadAllText("./myfile"));

编辑:为了响应异常,您希望使用此重载,它允许您更改序列化设置;

 JsonConvert.SerializeObject(ResultGroups, 
                    new JsonSerializerSettings()
                    { 
                        ReferenceLoopHandling = ReferenceLoopHandling.Ignore
                    });
于 2013-06-21T20:02:51.023 回答