Как сделать шаблон для улучшений ?
|
|
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();
} }
}
|
|
| |
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 |
|
| |