我的问题如下: 我序列化数据并将它们发送到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();
但输出我得到的数据不正确。我做错了什么?
答案 0 :(得分:0)
这里的根本问题是您使用字符串作为二进制数据的存储。这是错误的,因为更改字符串编码可能会破坏您的数据。不幸的是,PlayerPrefs
没有提供任何保存/加载二进制数据的方法。因此,解决方案是使用文本序列化。
P.S。这看起来不正确:
bitStream.WriteString(PlayerPrefs.GetString(species.ToString()));