我正在使用Unity3D构建游戏。我有一个名为GameInstance的类,其中包含所有当前的游戏实例数据。它包含多个子类,例如Player
属性将返回Player
对象。
然而,所有对象都是简单的键/值对象,它只是数据。现在我需要序列化所有这些并将其保存到文件中,以便我可以重新加载它以重新启动它离开的游戏。
这就是我基本上打算做的事情,也许有人会有更好的建议,但这是我找到的最灵活的选择。
我过去使用过.NET XML对象序列化但是已经有一段时间了,我需要对此有更直接的建议。我应该序列化为XML或JSON吗?
TL; DR :我想在Unity3D项目中使用C#/ .NET序列化整个类及其所有内容。我该怎么办?
谢谢!
答案 0 :(得分: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
});