с несколькими уровнями.
Я так сделал, но проблема в том, что рекорд сохраняется при переходе на следующий уровень, а нужно сделать так, чтобы он сбрасывался.
Иначе получится так, что игрок может "набить большой счет" на легком уровне, потом перейти на следующие и будет казаться будто бы игрок набрал высокий счет на сложном уровне, хотя на самом деле это не так.
Есть идеи как это правильно реализовать?
У меня есть одна... При переходе со сцены на сцену сбрасывать переменную, но понятия не имею как это сделать.
Я так понял у тебя рекорд общий на всю игру и ты так и сохраняешь - глобально. А тебе надо каждому уровню свой соотвевующий рекорд - локально относительно уровня\сцены. И соответвенно надо сохранять также
или для каждой сцены сделать свою переменную
Тебе надо сохранять в формате словаря где каждому ключу соответвеует значение. В твоем случае ключ это номер уровня, а в качестве значения - рекорд уровня
Это не совсем верный подход
В таком случае можно массив сохранять.
Можно где то прочитать или посмотреть видео?
https://docs.microsoft.com/ru-ru/dotnet/api/system.collections.generic.dictionary-2?view=net-5.0
ну или так а потом в скрипте просто вешаешь на каждый уровень и в паблике выбераешь номер сцены (конечно же это все накодив)
я лично сохраняю в PlayerPrefs самы простой способ для небольшого количества переменных
Крч... Создать паблик int'овую переменную, в каждой сцене в инспекторе указывать номер сцены. И как то так узнавать про активную сцену...
Я так же сделал, но рекорд сохраняется везде, в каждом уровне.
Про формат JSON Слышал? Можно класс превратить в строковый формат и сохранить через PlayerPrefs.SetString("LevelRecords", jsonLevelREcords);
сделай масив и в него уже записуй а потом будешь каждой сцене указывать номер и соответствунно искать номер в масиве
Обсуждают сегодня