Как запоминать количество полученых звёзд за уровень?
Проблема вот в чём.У меня в игре будет много уровней, и в каждом из них будут даватся звёзды за быстро пройденные уровни - чем быстрее, тем больше звёзд.Но вот в чём вся суть вопроса.Как мне запоминать эти звёзды?
Допустим будет 100 уровней.И если я реализую всё через PlayerPrefs то мне прийдётся делать скрипты под каждый уровень, и делать огромную кучу переменных и запоминать их в PlayerPrefs. Я уверен что есть способ решить это както иначе. Помогите:)
longclaps, Кароче придумал более хороший способ,я просто создам один скрипт и применю его на все кнопки уровней в меню.И я смогу вводить с помощью публичной переменной String какой именно ключ PlayerPrefs мне нужен для именно этого уровня.И создам еще одни скрипт который буду применять уже в сценах и по тому же принципу буду вводить в инспекторе нужный ключ который надо запомнить.Таким образом создам всего два ключа:)
// Класс который будет хранить все уровни
public static class LevelManager {
private static Dictionary<int, LevelData> Levels = new Dictionary<int, LevelData>();
// Когда к примеру игрок проходит уровень, вызываем GetLevel и присваим нужные значение, сколько звезд и т.д.
public static LevelData GetLevel(int id) => Levels[id];
// Эти два методы тоже нужно вызывать из места где вам нужно, доступ будет везде.
public static void Save()
{
// Тут делать сохранение, json, data binary, на ваше усмотрение
}
public static void Load()
{
// Тут делать загрузку, json, data binary, на ваше усмотрение
}
}
// Нужен класс который будет хранить всю инфу о каждом уровне
public class LevelData
{
public int id; // уникальный идентификатор
public bool passed; // пройден ли он
public int stars; // сколько звед получено
... // и другие переменные
}