| Как сделать шаблон для улучшений ? | 
|  | 
| 
| Yraiv | Дата: Вторник, 14 Апреля 2020, 08:59 | Сообщение # 1 |  | был не раз Сейчас нет на сайте | Мне необходимо сделать шаблон, который я смогу в будущем менять. Пример шаблона:
 Есть кнопка UP1 в ней есть 1 кнопка и 2 текста.
 Вложенная кнопка отвечает за покупку улучшения.
 первый и второй текст - уровень и стоимость улучшения.
 Я создал скрипт для сохранения изменений, тип, каждый новый уровень и стоимость сохраняется, а также даёт какой-то бонус игроку и все эти данные я сохраняю под ключом.
 Но если мне нужно сделать допустим up2 и тд, то как быть? Сохранение идёт по ключу, это каждый раз разный ключ прописывать чтоль?
 
 Вот скрипт покупки со всеми сохранениями:
 [code]
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class LoadMoney : MonoBehaviour
 {
 
 public int money; // деньги
 public int cost; // стоимость
 public int bonus; // основной бонус
 public int dopbonus; // доп бонус
 public int lvl; // уровень
 
 void Start()
 {
 Load();
 LoadLvl();
 LoadCost();
 LoadBonus();
 
 }
 
 public void Load() // получил доступ к деньгам
 {
 
 string key = "MyChet";
 this.money = PlayerPrefs.GetInt(key);
 
 }
 
 
 public void LoadBonus () // получил доступ к бонусу
 
 {
 
 string key = "bonus";
 this.bonus = PlayerPrefs.GetInt(key);
 
 }
 
 public void LoadLvl() // загрузка уровня
 {
 
 string key = "lvl";
 this.lvl = PlayerPrefs.GetInt(key);
 
 }
 
 public void LoadCost() // загрузка стоимости
 {
 string key = "cost";
 this.cost = PlayerPrefs.GetInt(key);
 
 }
 
 public void Save() // сохранение стоимости
 {
 string key = "MyChet";
 PlayerPrefs.SetInt(key, money);
 PlayerPrefs.Save();
 }
 
 public void SaveLvl() // сохранение уровня
 {
 string key = "lvl";
 PlayerPrefs.SetInt(key, lvl);
 PlayerPrefs.Save();
 }
 
 public void SaveCost() // сохранение стоимости
 {
 string key = "cost";
 PlayerPrefs.SetInt(key, cost);
 PlayerPrefs.Save();
 }
 
 public void SaveBonus() // сохранение бонуса
 {
 string key = "bonus";
 PlayerPrefs.SetInt(key, bonus);
 PlayerPrefs.Save();
 }
 
 public void BuyUp() // покупка улучшений
 {
 
 if (money >= cost)
 {
 money = money - cost;
 bonus = bonus + dopbonus;
 lvl = lvl + 1;
 cost = cost + 5;
 Save();
 SaveLvl();
 SaveCost();
 SaveBonus();
 
 
 }
 }
 
 }
 
 
 |  |  |  |  | 
| 
| drcrack | Дата: Вторник, 14 Апреля 2020, 10:11 | Сообщение # 2 |  | старожил Сейчас нет на сайте | Даже если у кого-то возникнет желание тебе обьяснить как не использовать каждый раз разный ключ, что по сути будет переписыванием всего скрипта за тебя, ты попадешь в новый тупик в тот же день т.к. ты вообще не понимаешь что делаешь. 
 
 Найти онлайн курс по Unity/C# и пройти его с начала до конца, чтобы освоить все инструменты и понять все возможности, которые предлагает язык и платформа для реализации твоих идей
 То что ты сейчас делаешь, судя по этому скрипту, похоже на попытку собрать шкаф-купе имея из инструментов один пластмассовый игрушечный молоточек
 
 
 Сообщение отредактировал drcrack - Вторник, 14 Апреля 2020, 10:12 |  |  |  |  | 
| 
| Yraiv | Дата: Вторник, 14 Апреля 2020, 10:17 | Сообщение # 3 |  | был не раз Сейчас нет на сайте | Поделись примером, а то из того, что проходил не особо помогло |  |  |  |  | 
| 
| drcrack | Дата: Вторник, 14 Апреля 2020, 10:20 | Сообщение # 4 |  | старожил Сейчас нет на сайте | можешь добавить префикс к ключам, вынести его в сериализуемое поле, и создать новый обьект с этим скриптом, но новым префиксом, и использовать его со второй кнопкой 
 PS зачем хранить стоимость вообще непонятно т.к. ее можно в любой момент рассчитать как уровень * 5, или может (уровень + 1) * 5, не совсем понятно с какого уровня все начинается и какая базовая стоимость
 
 
 Сообщение отредактировал drcrack - Вторник, 14 Апреля 2020, 10:23 |  |  |  |  | 
| 
| Yraiv | Дата: Вторник, 14 Апреля 2020, 10:25 | Сообщение # 5 |  | был не раз Сейчас нет на сайте | какие уроки/курсы посоветовать можешь? |  |  |  |  | 
| 
| drcrack | Дата: Вторник, 14 Апреля 2020, 10:48 | Сообщение # 6 |  | старожил Сейчас нет на сайте | гугли "самоучитель C#" и пробуй все подряд пока не найдешь тот который понимаешь и который нравится я тут никак не помогу т.к. учил все это уж очень давно
 |  |  |  |  | 
| 
| Core | Дата: Вторник, 14 Апреля 2020, 11:18 | Сообщение # 7 |  |   заслуженный участник Сейчас нет на сайте | Нормально оформленный код: 
 Код using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class LoadMoney : MonoBehaviour
 {
 
 public int money; // деньги
 public int cost; // стоимость
 public int bonus; // основной бонус
 public int dopbonus; // доп бонус
 public int lvl; // уровень
 
 void Start()
 {
 Load();
 LoadLvl();
 LoadCost();
 LoadBonus();
 
 }
 
 public void Load() // получил доступ к деньгам
 {
 
 string key = "MyChet";
 this.money = PlayerPrefs.GetInt(key);
 
 }
 
 public void LoadBonus () // получил доступ к бонусу
 
 {
 
 string key = "bonus";
 this.bonus = PlayerPrefs.GetInt(key);
 
 }
 
 public void LoadLvl() // загрузка уровня
 {
 
 string key = "lvl";
 this.lvl = PlayerPrefs.GetInt(key);
 
 }
 
 public void LoadCost() // загрузка стоимости
 {
 string key = "cost";
 this.cost = PlayerPrefs.GetInt(key);
 
 }
 
 public void Save() // сохранение стоимости
 {
 string key = "MyChet";
 PlayerPrefs.SetInt(key, money);
 PlayerPrefs.Save();
 }
 
 public void SaveLvl() // сохранение уровня
 {
 string key = "lvl";
 PlayerPrefs.SetInt(key, lvl);
 PlayerPrefs.Save();
 }
 
 public void SaveCost() // сохранение стоимости
 {
 string key = "cost";
 PlayerPrefs.SetInt(key, cost);
 PlayerPrefs.Save();
 }
 
 public void SaveBonus() // сохранение бонуса
 {
 string key = "bonus";
 PlayerPrefs.SetInt(key, bonus);
 PlayerPrefs.Save();
 }
 
 public void BuyUp() // покупка улучшений
 {
 
 if (money >= cost)
 {
 money = money - cost;
 bonus = bonus + dopbonus;
 lvl = lvl + 1;
 cost = cost + 5;
 Save();
 SaveLvl();
 SaveCost();
 SaveBonus();
 
 }
 }
 
 }
 
 Игры: justcore.itch.io
 Сайт: justcore.space
 |  |  |  |  | 
| 
| ShortKedr | Дата: Вторник, 14 Апреля 2020, 12:04 | Сообщение # 8 |  |   Renword Studio Сейчас нет на сайте | Цитата Core (  )  Нормально оформленный код:Ещё нужно все конструкции с телами подчиненно выстроить, а то черт ногу сломит где ты находишься. Ладно такие маленькие методы с маленькими телами, но вот были бы большие и сложные, уже бы мозг в отпуск ушёл
 
 Добавлено (14 Апреля 2020, 12:07)
 ---------------------------------------------
 
 Цитата Yraiv (  )  какие уроки/курсы посоветовать можешь?Мой совет, кроме самих курсов, пробуй делать по полученным знаниям что-то сам и решать проблему сам. Ставишь задачу и достигаешь её, пробуешь разные варианты если что-то не получается, придумываешь решения, визуализируешь на бумаге. А иначе проги сделанные по примерам и шаблонам не дадут понимания никакого. И брать задачи сложнее того что умеешь, в обучении всегда должно быть что-то над чем ты задумаешься, а не просто пройдёшь мимо
 
 Добавлено (14 Апреля 2020, 12:12)
 ---------------------------------------------
 В конце надо ставить закрывающий тег [/code]
 
 Цитата Yraiv (  )  [code]
 
 Сообщение отредактировал ShortKedr - Вторник, 14 Апреля 2020, 12:13 |  |  |  |  |