C# 在PlayerPrefs中保存自定义类型的列表
我想在PlayerPrefs中保存Myclass类型的列表 我看到了一个转换字符串的例子,我该怎么做C# 在PlayerPrefs中保存自定义类型的列表,c#,unity3d,C#,Unity3d,我想在PlayerPrefs中保存Myclass类型的列表 我看到了一个转换字符串的例子,我该怎么做 public class MyClass{ private int ex; } List<MyClass> l = new List<MyClass>(); //How to save it? 公共类MyClass{ 私人综合交易所; } 列表l=新列表(); //如何保存它? 尝试使用newtonsoft.json 他们提供了扩展示例,这两个示例应该可以帮助
public class MyClass{
private int ex;
}
List<MyClass> l = new List<MyClass>();
//How to save it?
公共类MyClass{
私人综合交易所;
}
列表l=新列表();
//如何保存它?
尝试使用newtonsoft.json
他们提供了扩展示例,这两个示例应该可以帮助您开始:
最好的问候也许是
for(int i=0;i<list.length;i++)
{
PlayerPrefs.SetString(list(i).name, list(i).value);
}
在我个人看来,使用JSON将对象序列化/反序列化为字符串的方法是更好的选择 你可以找到很多C#的JSON库,只要研究一下,找到一个更适合你的 或者看看unity wiki,并扩展或使用它来创建您自己的解析器来保存对象结构。我个人不建议使用这种方法来保存整个对象,但可以提及 当您的对象足够简单,可以按照Povl Eller的建议从中使用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) );
装载
Character char = JsonConvert.DeserializeObject<Character>( PlayerPrefs.GetString( "PlayerCharacter" ) );
Character char=JsonConvert.DeserializeObject(PlayerPrefs.GetString(“PlayerCharacter”);
如果需要控制更复杂对象或其他对象的序列化,可以使用newtonsoft网站上的同一链接中记录的JsonSerializer
OBS:我在这里直接编写了这段代码,没有对它进行测试,可能您需要调整它以使其有用…请包含一些代码片段,以便您的问题易于理解。请注意,根据目标平台的不同,PlayerPref可能有字符串大小限制。请参阅此答案,仅使用链接对ans来说是一种不好的做法wer,因为链接可能会变得无效,响应也可能变得无用