PlayerPrefs не сохраняет данные на Android (Unity)
У меня не получается сохранить данные в PlayerPrefs. При проверке игры на ПК сохранение работает исправно, но когда компилирую под Android, данные не сохраняются.
Так выглядит класс для сохранения:
{
public static void Save<T>(string key, T SaveData)
{
string JsDat = JsonUtility.ToJson(SaveData, true);
PlayerPrefs.SetString(key, JsDat);
PlayerPrefs.Save();
}
public static T Load<T>(string key) where T : new()
{
if (PlayerPrefs.HasKey(key))
{
string loadStr = PlayerPrefs.GetString(key);
return JsonUtility.FromJson<T>(loadStr);
}
else return new T();
}
}
В тип при вызове методов я передаю объект этого класса:
{
public List<int> records;
public DataBase() { records = new List<int>(); }
public DataBase(List<int> l) { records = l; }
public void SetRecs(int score)
{
records.Add(score);
var r = records.OrderBy(p => p).Reverse().ToList();
records.Clear();
records = r;
ClearUnnecessaryData();
foreach (var item in records) Debug.Log(item);
}
public List<int> GetRecs() { return records; }
public void SetList(List<int> l) { records = l; }
private void ClearUnnecessaryData()
{
if (records.Count > 3)
{
List<int> l = new List<int>();
for (int i = 0; i < records.Count; i++) l.Add(records[i]);
l.RemoveRange(3, l.Count - 3);
records.Clear();
for (int i = 0; i < l.Count; i++) records.Add(l[i]);
}
}
}
По идее должна сохраняться переменная records. Возможно ли, что на Android не работают действия над Json данными? Или с чем вообще это может быть связано?