将 [Serializable] 与 mscorlib (Unity) 结合使用

Using [Serializable] with mscorlib (Unity)

我正在使用 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.

这是 link to that page

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

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

这需要:

Using System;

当我 运行 玩游戏时,使用 mscorlib 似乎没问题,但会遇到严重的崩溃,这种崩溃时不时地破坏统一性,并且在随机点也会破坏游戏。我怀疑这可能与此有关。

任何人都可以指出正确的方向以了解如何使用 micro mscorlib 保存序列化数据吗?

干杯。

您可以查看 Mono compatibility reference 以了解哪些元素在 micro mscorlib 中不可用。

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

您可以查看 here 了解有关如何保存游戏数据的一些想法(以及您在序列化过程中可能遇到的一般问题)。