Unity PlayerPrefs 提供了字典存储接口,但没有针对二进制数据的操作。如果希望存储二进制数据bytes,就需要把bytes[]和string进行转化,然后利用PlayerPrefs存储string的方式来达到目的。所以,问题转化成,string和bytes[]的互相转换操作。
可以参看这一篇文章, C# byte[]数组和string的互相转化 (四种方法)。四种方法,只有一种可以正确转换数据。
string dataStr = PlayerPrefs.GetString(Key);
byte[] dataBytes = Convert.FromBase64String(dataStr);
string dataStr = Convert.ToBase64String(bytes);
PlayerPrefs.SetString(key, dataStr);
存储二进制数据,一方面可以数据加密,一方面相当于对象的序列化和反序列化操作。这样就可以提供一个通用的数据存储接口,来持久化对象数据。
public static class PlayerPrefsManager
{
public interface IDataHandler
{
string