将字符串字节反序列化为BitStream

时间:2014-06-20 12:02:10

标签: c# unity3d

我的问题如下: 我序列化数据并将它们发送到PlayerPrefs

BitStream bitStream = new BitStream(isTypeSafe);
        bitStream.WriteByte(species);
        bitStream.WriteInt32(revision);
PlayerPrefs.SetString(species.ToString(), bitStream.ToString());

然后我尝试反序列化数据:

BitStream bitStream = new BitStream(isTypeSafe);
bitStream.WriteString(PlayerPrefs.GetString(species.ToString()));
species = bitStream.ReadByte();
revision = bitStream.ReadInt32();

但输出我得到的数据不正确。我做错了什么?

1 个答案:

答案 0 :(得分:0)

这里的根本问题是您使用字符串作为二进制数据的存储。这是错误的,因为更改字符串编码可能会破坏您的数据。不幸的是,PlayerPrefs没有提供任何保存/加载二进制数据的方法。因此,解决方案是使用文本序列化。

P.S。这看起来不正确:

bitStream.WriteString(PlayerPrefs.GetString(species.ToString()));