Четверг, 28 Марта 2024, 21:16

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как сделать шаблон для улучшений ? (шаблон с сохранением данных)
Как сделать шаблон для улучшений ?
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
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как сделать шаблон для улучшений ? (шаблон с сохранением данных)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг