SKLLZ1
@SKLLZ1

Как загрузить сохранение один раз?

Столкнулся с проблемой. Делал сейв через PlayerPrefs, в котором идет сохранение в onapplicationquit, а загрузку в awake. И скрипт этот прицеплен к меню, и в этом же скрипте методы для увеличения этих значений(делал типа статистику). но вот проблема, когда я выхожу из уровня обратно в меню, он снова загружает сохранение...

private static int points;
private static int enemys;
private static int asteroids;
private static int shields;
private static int asteroidsLose;

private Saver sv = new Saver();

void Awake()
{

    if (PlayerPrefs.HasKey("SV"))
    {

        sv = JsonUtility.FromJson<Saver>(PlayerPrefs.GetString("SV"));

        points = sv.points;
        enemys = sv.enemys;
        asteroids = sv.asteroids;
        shields = sv.shields;
        asteroidsLose = sv.asteroidsLose;

    }
    else Debug.Log("Сохранения нет");

}


void Start()
{

}
void Update()
{

}

private void OnApplicationQuit()
{

    sv.points = points;
    sv.enemys = enemys;
    sv.asteroids = asteroids;
    sv.shields = shields;
    sv.asteroidsLose = asteroidsLose;

    PlayerPrefs.SetString("SV", JsonUtility.ToJson(sv));

}


[Serializable]
public class Saver
{
    public int points;
    public int enemys;
    public int asteroids;
    public int shields;
    public int asteroidsLose;
}
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ответы на вопрос 1
2chevskii
@2chevskii
Если бы каждый мог в поиск, тостер бы вымер.
Самое очевидное, что можно придумать - вместо отдельных переменных, храните глобалку класса Saver, которую проверяете на нуль, и загружаете, если она такова. Если захочется укоротить код доступа к значениям - сделайте свойства.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы