Не сохраняется переменная в Unity через PlayerPrefs?
Создаю игру на юнити, осталось сделать магазин, создал переменную скина, при нажатии на кнопку "купить" она изменяется, но почему-то PlayerPrefs не сохраняет её.
вот код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Shop : MonoBehaviour
{
[SerializeField] private Text coinsText;
[SerializeField] public int skin1;
[SerializeField] private Text skinText;
void Start()
{
int coins = PlayerPrefs.GetInt("coins");
coinsText.text = coins.ToString();
int skin1 = PlayerPrefs.GetInt("skin1");
}
NattRiy1,
Ну у тебя вместо присвоения переменных они создают заново, и Start у тебе ещё раз создает skin1, что со сути уже должно быть ошибкой, потому у как уже есть глобальный skin1 и не даль скомпилироваться
Просто такое подсвечивает и сразу пишет что это не верно, поэтому в глаза и не кидается) особенно когда код без тега)
DrRen7, Огооо, спасибо большое, ты меня очень выручил, как раз проблема была в старте, затупил и пересоздал переменную, огромное спасибо, теперь сохраняется всё.
я особо не пользовался PlayerPrefs но если в игре все сохраняется тогда просто нет сейва в файл попробуй добавить
PlayerPrefs.Save(); при сохранении изменений
Ну тадо тогда посидеть по дебагать, когда данные перестают записываться считываться.
Есть еще вариант немного все изменить те не на прямую работать с PlayerPrefs а через условно другой скрипт который будет хранить переменные. Условно при старте он возьмет все значение(из PlayerPrefs) и ты будешь работать со значениями в этом скрипте, а когда надо просто то сохранить все значения