@mamora_sema
Просто интересуюсь программирование

Как сохранить цифры в unity?

Здравствуйте возник вопрос в сохранении бонусов?
Вот как о сохраняет
public void info2()
    {
        sv.score = score;
        sv.scoreIncrease = scoreIncrease;
        sv.tart = scoreIncrease;
        sv.levelOfItem = new int[shopItems.Count];
        sv.bonusCounter = new int[shopItems.Count];
        for (int i = 0; i < shopItems.Count; i++)
        {
            sv.levelOfItem[i] = shopItems[i].levelOfItem;
            sv.bonusCounter[i] = shopItems[i].bonusCounter;
        }
        sv.date[0] = DateTime.Now.Year; sv.date[1] = DateTime.Now.Month; sv.date[2] = DateTime.Now.Day; sv.date[3] = DateTime.Now.Hour; sv.date[4] = DateTime.Now.Minute; sv.date[5] = DateTime.Now.Second;
        PlayerPrefs.SetString("SV", JsonUtility.ToJson(sv));
    }

А вот как как он действует при запуске
int totalBonusPS = 0;
            sv = JsonUtility.FromJson<Save>(PlayerPrefs.GetString("SV"));
            score = sv.score;
            tyty= sv.scoreIncrease;
            scoreIncrease = sv.scoreIncrease;

            for (int i = 0; i < shopItems.Count; i++)
            {
                print((int)Mathf.Pow(shopItems[i].bonusIncrease, shopItems[i].levelOfItem));
                shopItems[i].levelOfItem = sv.levelOfItem[i];
                shopItems[i].bonusCounter = sv.bonusCounter[i];
                if (shopItems[i].needCostMultiplier) shopItems[i].cost *= (int)Mathf.Pow(shopItems[i].costMultiplier, shopItems[i].levelOfItem);
                if (shopItems[i].bonusIncrease != 0 && shopItems[i].levelOfItem != 0)
                totalBonusPS += shopItems[i].bonusPerSec * shopItems[i].bonusCounter;
            }
            
           
            DateTime dt = new DateTime(sv.date[0], sv.date[1], sv.date[2], sv.date[3], sv.date[4], sv.date[5]);
            TimeSpan ts = DateTime.Now - dt;
            int offlineBonus = (int)ts.TotalSeconds * totalBonusPS;
            score += offlineBonus;
            score2 += offlineBonus;

И почему-то все хорошо сохраняется кроме scoreIncrease, и всё время когда запускаю программу scoreIncrease = 0.Что делать подскажите пожалуйста.Заранее спасибо !
  • Вопрос задан
  • 117 просмотров
Решения вопроса 1
zZaKko
@zZaKko
Люблю стратегии и Unity.
PlayerPrefs.SetInt("Название ячейки", даные(int));
С помощью этого метода ты в регистр сохраняешь свою переменну.
Чтобы назад его взять:
int x = PlayerPrefs.GetInt("Название ячейки");
Таким способом ты можешь загружать свои переменные постоянно, даже если игра закрыли и запустили опять.
Думаю, помог)))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы