将 [Serializable] 与 mscorlib (Unity) 一起使用

本文关键字:Unity 一起 mscorlib Serializable | 更新日期: 2023-09-27 18:35:46

我正在使用Unity构建一个iOS游戏,并在优化文档中说:

Don’t use anything that lives in System.dll or System.Xml.dll in your code. These libraries are not compatible with micro mscorlib.

这是该页面的链接。

在我的代码中,为了保存游戏数据,我有一个这样的类:

[Serializable]
class GeneralGameData {
    public bool muteMusic;
    public bool muteSoundFX;
    public bool muteVibration;
    public int highestScoreAchieved;
}

这需要:

Using System;
当我运行游戏时,

mscorlib 使用它似乎没问题,但会遇到令人讨厌的崩溃,这种崩溃时不时地杀死团结,并在随机点杀死游戏。我怀疑这可能与此有关。

谁能指出我如何使用micro mscorlib保存序列化数据的正确方向?

干杯。

将 [Serializable] 与 mscorlib (Unity) 一起使用

你可以看看 Mono 兼容性参考,看看哪些元素在 micro mscorlib 中不可用。

您会注意到 SerializableAttribute(命名空间系统、程序集 mscorlib)在 .NET 2.0、2.0 子集、Web 播放器和 Micro 中可用。在这里,[可序列化]的使用不应该有错。但是,您的实际序列化代码可能间接依赖于micro mscorelib中不可用的内容。始终可以使用 .NET 反射器检查要验证的序列化程序代码。

您可以在此处查看有关如何保存游戏数据的一些想法(以及您在序列化方面可能遇到的一些问题)。