我想在PlayerPrefs中保存Myclass类型的列表。
我看到了一个转换为字符串的示例,我该怎么做?
public class MyClass{
private int ex;
}
List<MyClass> l = new List<MyClass>();
//How to save it?
Run Code Online (Sandbox Code Playgroud)
我个人认为,使用JSON将对象序列化/反序列化为字符串的方法是更好的选择。
您可以找到许多用于C#的JSON库,只需对其进行研究,然后找到一个更适合您的库。
或查看统一维基ArrayPrefs2并进行扩展或使用它来创建自己的解析器以保存对象结构。我个人不建议使用这种方法来保存整个对象,但是可以选择提及...
当您的对象足够简单时,可以按照Povl Eller的建议使用Newtonsoft的 JsonConverter :
保存
Character char = new Character();
char.Name = "Apple";
char.Level = 1;
char.Health = 150;
char.Attributes = new int[] { 10, 10, 10 };
PlayerPrefs.SetString( "PlayerCharacter", JsonConvert.SerializeObject(char) );
Run Code Online (Sandbox Code Playgroud)
加载
Character char = JsonConvert.DeserializeObject<Character>( PlayerPrefs.GetString( "PlayerCharacter" ) );
Run Code Online (Sandbox Code Playgroud)
如果您需要控制更复杂对象或其他对象的序列化,则可以使用newtonsoft网站上同一链接中记录的JsonSerializer。
OBS:我直接在这里编写此代码,但未对其进行测试,可能您需要对其进行调整才能有用...