DyadyaEmil
@DyadyaEmil
Начинающий программист

Почему не работает PlayerPrefs?

Добрый вечер всем кто это читает. Вопрос такой, не работает PlayerPrefs, уже голову сломал просто. Хочу что бы игра запоминала количество денег,которое игрок заработал, и запоминала сколько людей в руднике.
Вставлю кусочек, где использую PlayerPrefs.
if( people_all > 0 )
        {
            people_all -= 1; //здесь уменьшаю число людей отображающихся на интерфейсе игровом.
            PlayerPrefs.SetInt("People_how_many1", people_all); //пытаюсь наколдовать сохранение данных.
            PlayerPrefs.Save();
            people_in_golden_int += 1; //здесь увеличиваю количество людей в руднике, которое так же отображается игроку в меню рудника.
            PlayerPrefs.SetInt("people_in_golden_int1", people_in_golden_int); //Снова пытаюсь вызвать магию
            PlayerPrefs.Save();
            people_in_golden.GetComponent<Text>().text =PlayerPrefs.GetInt("people_in_golden_int1").ToString();//изменяю параметр текст в объекте что отображает число на интерфейс игровой, что бы показать сколько людей в руднике.
            people_how_many.GetComponent<Text>().text = PlayerPrefs.GetInt("People_how_many1").ToString(); //изменяю количество людей доступных для команд.
        }

Запускаю для проверки в юнити, провожу тесты ( отсылаю людей в рудник) останавливаю игру, запускаю снова, и данные возвращаются в исходные значения. Прошу,если не сложно объясните в чём я допустил ошибку. Заранее спасибо всем откликнувшимся!
P.S. Простите за мою беспомощность.
P.S.S. МАГИСТР GavriKos взываю к вашей мощи знаний! Явитесь ко мне и в этот раз!
  • Вопрос задан
  • 1633 просмотра
Решения вопроса 1
MrMureno
@MrMureno Куратор тега Unity
VR for all
GavriKos конечно все в комментариях порешал))
но оставлю для людей ленящихся читать.

переменные
people_all
people_in_golden_int

надо на старте игры инициализировать. в данном случае из PlayerPrefs подгрузить значения.))
а иначе так и будет там по умолчанию значение, заданное в скрипте/редакторе
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
DyadyaEmil
@DyadyaEmil Автор вопроса
Начинающий программист
Для тех,кому окажется это полезным, вот так примерно выглядит скрипт загрузки префсов,который мы помещаем на отдельный игровой объект, активный с самого начала.
public class Loading : MonoBehaviour {
    public GameObject people;
    public GameObject people_in_golden;
    public GameObject gold;
   
	// Use this for initialization
	void Start () {
        

        gold.GetComponent<Text>().text = PlayerPrefs.GetFloat("Gold").ToString();
        people_in_golden.GetComponent<Text>().text = PlayerPrefs.GetInt("people_in_golden_int1").ToString();
        people.GetComponent<Text>().text = PlayerPrefs.GetInt("People_how_many1").ToString();
    }
Ответ написан
Ваш ответ на вопрос

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

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