Функция DeleteAll в PlayerPrefs

190
21 марта 2019, 14:50

Нужно сбросить игровую статистику по нажатию на кнопку, но удаление не происходит. Как правильно это сделать?

using ...
public class Stats : MonoBehaviour 
{
    public float money, xBoost, addon, DOPM, DOPAuto;
    private SaveGame SG = new SaveGame();
    // etc
    public void CancelAll()
    {
        PlayerPrefs.DeleteAll();
        PlayerPrefs.Save();
    }
}

сохранение

private void OnApplicationPause(bool pause)
{
    if (pause)
    {
        SG.DOPAuto = DOPAuto;
        SG.DOPM = DOPM;
        SG.money = money;
        PlayerPrefs.SetString("SAVE", JsonUtility.ToJson(SG));
        PlayerPrefs.Save();
    }
}

Загрузка сохранений

private void Awake()
{
    if (PlayerPrefs.HasKey("SAVE"))
    {
        SG = JsonUtility.FromJson<SaveGame>(PlayerPrefs.GetString("SAVE"));
        DOPAuto = SG.DOPAuto;
        DOPM = SG.DOPM;
        money = SG.money;
    }
}

Класс SaveGame

[Serializable]
public class SaveGame
{
   public float money, DOPM, DOPAuto;
}
Answer 1

У вас статистика игры не static - вы создаете один объект SG и всю иру с ним работаете? Если так, и вам "Нужно сбросить игровую статистику по нажатию на кнопку", то у вас в public void CancelAll() сбрасываются только PlayerPrefs, а статистика то у вас находится в SG. Вам надо тогда обнулить переменные. Как то так:

public void CancelAll()
        {
          //ставите значения по умолчанию, что у вас, например 0f
           SG.money = 0f;
           SG.xBoost = 0f;
           SG.addon = 0f;
           SG.DOPM = 0f;
           SG.DOPAuto = 0f;
           PlayerPrefs.DeleteAll();
           PlayerPrefs.Save();
        }
READ ALSO
Что такое remoteKeyValueStorage

Что такое remoteKeyValueStorage

Читаю задачу учебную и написано сделать remoteKeyValueStorage на базе web apiС последним понятно информации много, а что такое remoteKeyValueStorage

166
Путь к системным папкам

Путь к системным папкам

Есть ли в C# методы похожие на PathGetTempPath();? Что бы получать путь до таких папок как Program Files, Program Data

166
Как установить Behavior через триггер

Как установить Behavior через триггер

Предположим, у меня есть некий контролл:

153
Общие вопросы по c# [закрыт]

Общие вопросы по c# [закрыт]

Можем ли мы в интерфейсах создавать, что то вроде поля классаНапример мне нужно чтобы в интерфейсе был: Mysqlconnection

161