Сохранение Json в Player Prefs.
HerrPotapov Дата: Суббота, 15 Июля 2017, 23:25 | Сообщение # 21
заслуженный участник
Сейчас нет на сайте
Flypi , и где в этом коде строкиКод
PlayerDataIntermediateSaver.SetPlayerData(money, Level, xP); SceneManager.LoadScene(1);
Discord: alpotapov#1741 Интервью с разработчиком WarCastle - Читаем и вникаем!
shizofren Дата: Воскресенье, 16 Июля 2017, 09:52 | Сообщение # 22
Starting MS-DOS...
Сейчас нет на сайте
Flypi , во всем скрипте я не вижу, чтобы вызвался метод "SetPlayerData". Возможно, ты прислал старый скрипт.
Моя команда
Flypi Дата: Воскресенье, 16 Июля 2017, 19:00 | Сообщение # 23
был не раз
Сейчас нет на сайте
shizofren , HerrPotapov , Я скинул без перехода, видимо помощник убрал
Код
public Text xpText, MoneyText, levelText; private int xp; private int level = 1; private int MoneySeconds; private int xpSeconds; private int NumberClicks = 1; public int Money; [Space] private int bonus = 1; public GameObject shopPan; [Header("Магазин")] public int[] shopCosts; public int[] shopBonuses; public Text[] shopBttnsText; private int MoneyClickBuy; public Text MoneyClickText; private int MoneySecBuy; public Text MoneySecText; private int XpSecBuy; public Text XpSecText; private Save sev = new Save(); private void Awake() { if (PlayerPrefs.HasKey("SV")) { sev = JsonUtility.FromJson<Save>(PlayerPrefs.GetString("SV")); xp = sev.xp; level = sev.level; Money = sev.Money; } } private void Start() { StartCoroutine(BonusPerSec()); } void Update() { xpText.text = xp.ToString(); MoneyText.text = Money.ToString(); levelText.text = level.ToString(); } public void shopBttn_addBonus(int bonus1) { if (Money >= shopCosts[bonus1]) { bonus += shopBonuses[bonus1]; Money -= shopCosts[bonus1]; shopCosts[bonus1] += 30; shopBttnsText[bonus1].text = "" + shopCosts[bonus1]; MoneyClickBuy++; MoneyClickText.text = "Куплено " + MoneyClickBuy + " раз"; } } public void MoneySec(int Sec) { if (Money >= shopCosts[Sec]) { MoneySeconds++; Money -= shopCosts[Sec]; shopCosts[Sec] += 300; shopBttnsText[Sec].text = "" + shopCosts[Sec]; MoneySecBuy++; MoneySecText.text = "Куплено " + MoneySecBuy + " раз"; } } public void XpSec(int xpSec) { if (Money >= shopCosts[xpSec]) { xpSeconds++; Money -= shopCosts[xpSec]; shopCosts[xpSec] += 500; shopBttnsText[xpSec].text = "" + shopCosts[xpSec]; XpSecBuy++; XpSecText.text = "Куплено " + XpSecBuy + " раз"; } } IEnumerator BonusPerSec() { while (true) { Money += MoneySeconds; xp += xpSeconds; yield return new WaitForSeconds(1); } } private void OnApplicationQuit() { sev.level = level; sev.xp = xp; sev.Money = Money; PlayerPrefs.SetString("SV", JsonUtility.ToJson(sev)); } public void OnMouseDown() { xp++; { if (xp >= (level * 100)) { level++; xp = 0; } NumberClicks++; if (NumberClicks >= 5) { NumberClicks = 0; Money += bonus; } } } public void loadScene() { PlayerDataIntermediateSaver.SetPlayerData(money, Level, xP); SceneManager.LoadScene(1); } } [Serializable] public class Save { public int xp; public int level; public int Money; } public static class PlayerDataIntermediateSaver { public static int Money { get; private set; } public static int level { get; private set; } public static int xp { get; private set; } public static void SetPlayerData(int money, int Level, int xP) { Money = money; level = Level; xp = xP; } }
вот весь полностью подчеркивает красным
HerrPotapov Дата: Воскресенье, 16 Июля 2017, 20:39 | Сообщение # 24
заслуженный участник
Сейчас нет на сайте
Flypi , Вот это вызов функцииКод
PlayerDataIntermediateSaver.SetPlayerData(money, Level, xP);
А вот это объявление переменныхКод
private int xp; ... private int level = 1; ... public int Money;
money != Money, level != Level, xp != xP Совет на будущее - выбрать единый стиль написания кода и следовать ему.
Discord: alpotapov#1741 Интервью с разработчиком WarCastle - Читаем и вникаем!
Flypi Дата: Воскресенье, 16 Июля 2017, 21:10 | Сообщение # 25
был не раз
Сейчас нет на сайте
HerrPotapov , Я сделал такКод
public void loadScene() { PlayerDataIntermediateSaver.SetPlayerData(money != Money, Level != level, xP != xp); SceneManager.LoadScene(1); }
money,Level,xP. подчеркнуто красным.
HerrPotapov Дата: Воскресенье, 16 Июля 2017, 21:21 | Сообщение # 26
заслуженный участник
Сейчас нет на сайте
Flypi , омг =) Ты объявляешь переменную с именем xp (маленькими буквами), а использовать пытаешься xP И так со всеми тремя переменнымиКод
PlayerDataIntermediateSaver.SetPlayerData(Money, level, xp);
Discord: alpotapov#1741 Интервью с разработчиком WarCastle - Читаем и вникаем!
Flypi Дата: Воскресенье, 16 Июля 2017, 22:06 | Сообщение # 27
был не раз
Сейчас нет на сайте
HerrPotapov , я все правильно сделал и даже если поменять переменные местами то все ровно подчеркнуто красным money,Level,xP.
HerrPotapov Дата: Воскресенье, 16 Июля 2017, 23:28 | Сообщение # 28
заслуженный участник
Сейчас нет на сайте
Flypi , причем здесь "поменять переменные местами"? У тебя в одном месте переменная xp, в другом xP. И в объявлении переменной (private int xp;) и в том месте где ты ее используешь (PlayerDataIntermediateSaver.SetPlayerData(Money, level, xp);) название этой переменной должно совпадать на 100%. Ты не можешь в одном месте использовать маленькие буквы, а в другом большие
Discord: alpotapov#1741 Интервью с разработчиком WarCastle - Читаем и вникаем!
beril Дата: Понедельник, 17 Июля 2017, 06:54 | Сообщение # 29
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
money,Level,xP - тебе все правильно говорят, у тебя нету объявленных перемен с такими названиями...
Накодил? Убери за собой! Инвентарь в Unity(UI) Инвентарь в Unity(GUI)