【问题标题】:Using [Serializable] with mscorlib (Unity)将 [Serializable] 与 mscorlib (Unity) 一起使用
【发布时间】:2016-02-23 12:56:31
【问题描述】:

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

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

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

需要:

Using System;

当我运行游戏时,使用 mscorlib 似乎可以使用它,但会出现严重的崩溃,这种崩溃会时不时地杀死团结,还会在随机点杀死游戏。我怀疑这可能与此有关。

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

干杯。

【问题讨论】:

  • 我使用 System 命名空间很多,例如 System.Action 和 System.Xml 在我迄今为止制作的所有手机游戏中 - 没有任何问题。我认为只有在为 micro mscorlib 选择条带模式时才会产生问题。

标签: c# ios serialization unity3d mscorlib


【解决方案1】:

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

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

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

【讨论】:

  • 感谢您的信息 :) - 仍然出现崩溃错误,不知道为什么,但至少我对此很清楚。
猜你喜欢
  • 1970-01-01
  • 2016-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-23
  • 2011-09-12
  • 1970-01-01
相关资源
最近更新 更多