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 данными? Или с чем вообще это может быть связано?


Ответы (0 шт):