Хранение данных и поиск в хранилище[Решено]

Программирование на Юнити.

Хранение данных и поиск в хранилище[Решено]

Сообщение ВерховныйНоуНейм 06 авг 2018, 12:55

У меня есть сцена с предметами. Мне нужно, чтобы они "открывались" при нахождении в игре.
Например при нахождении в файл будет записываться значение "open" или "1". А в этой сцене уже при старте считываться все значения из файла.
То-есть мне нужно удобно записывать значения в строки и чтобы для каждого объекта была своя строка(как теория варианта определения объекта, что именно он открыт)
То-есть при нахождении, например сыра, скрипт должен понимать что ему нужно записать единицу именно для сыра, а не по порядку, ну и собственно при загрузке скрипт должен искать именно значение сыра, а не смотреть в первую строку.
Ну и не помешал бы подсчет количества найденных предметов, количество единиц в файле.

Надеюсь вы меня поняли.

Хочется сразу сделать по умному, чтобы не мудрить галерею из костылей, которую потом придется сносить.
Последний раз редактировалось ВерховныйНоуНейм 09 авг 2018, 10:42, всего редактировалось 1 раз.
Изображение
Аватара пользователя
ВерховныйНоуНейм
UNIт
 
Сообщения: 68
Зарегистрирован: 25 фев 2017, 19:56

Re: Хранение данных и поиск в хранилище

Сообщение 1100001001 06 авг 2018, 16:58

Если в пределах одной игры, разные сцены но игра не закрывается то почему бы не использовать объект который не уничтожается https://docs.unity3d.com/ScriptReferenc ... nLoad.html . Создаешь скрипт в нём публичный булевский массив и ставишь значения true или false элементам массива - сыр, печенька, тапок и т.д. Если нужно хранить значения после выхода из игры самое простое используй PlayerPrefs https://habr.com/post/163071/
_https://vk.ru/belovedtoy
Аватара пользователя
1100001001
UNITрон
 
Сообщения: 276
Зарегистрирован: 26 сен 2012, 05:34
  • Сайт

Re: Хранение данных и поиск в хранилище

Сообщение ВерховныйНоуНейм 06 авг 2018, 18:30

1100001001 писал(а):Если в пределах одной игры, разные сцены но игра не закрывается то почему бы не использовать объект который не уничтожается https://docs.unity3d.com/ScriptReferenc ... nLoad.html . Создаешь скрипт в нём публичный булевский массив и ставишь значения true или false элементам массива - сыр, печенька, тапок и т.д. Если нужно хранить значения после выхода из игры самое простое используй PlayerPrefs https://habr.com/post/163071/

Так у меня будет что то вроде галереи трофеев, только для оружия.
И оружий то у меня 150(сейчас, потом может до 200 дойдет максимум).
Это не критично? Там же вроде ограничение.
Изображение
Аватара пользователя
ВерховныйНоуНейм
UNIт
 
Сообщения: 68
Зарегистрирован: 25 фев 2017, 19:56

Re: Хранение данных и поиск в хранилище

Сообщение 1100001001 07 авг 2018, 03:35

ну думаю пару миллиардов можно сохранить без потери скорости ;)
_https://vk.ru/belovedtoy
Аватара пользователя
1100001001
UNITрон
 
Сообщения: 276
Зарегистрирован: 26 сен 2012, 05:34
  • Сайт

Re: Хранение данных и поиск в хранилище

Сообщение KanycTa 07 авг 2018, 16:19

Синтаксис:
Используется csharp
string json = UnityEngine.JsonUtility.ToJson(T);
List<T> list = UnityEngine.JsonUtility.FromJson(json);
 
Аватара пользователя
KanycTa
UNIт
 
Сообщения: 107
Зарегистрирован: 25 июл 2018, 18:41
Откуда: г. Ульяновск
  • Сайт

Re: Хранение данных и поиск в хранилище

Сообщение Cr0c 07 авг 2018, 21:48

Можно брать список айтемов в цикле и записывать поле "изученности" в стринг
Синтаксис:
Используется csharp
string save = "";
for (int i=0; i<ItemsList.Count; i++)
 save += ItemsList[i].isOpened ? "1" : "0";
 

и сохранять эту строку где хочется. При загрузке эту строку обратно переводить в статус айтемов
Синтаксис:
Используется csharp
string save = // загрузка тут
for (int i=0; i<save.Length; i++)
 ItemsList[i].isOpened = (save[i] == '1');
 
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

Re: Хранение данных и поиск в хранилище

Сообщение ВерховныйНоуНейм 08 авг 2018, 12:40

Идея интересная.
У PlayerPrefs на Windows нет ограничений, так что буду его использовать для удобности.
Сортировать буду: "Weapon_" + WeaponId, true

Там-же только для web ограничение в 1mb, или я ошибаюсь?
Изображение
Аватара пользователя
ВерховныйНоуНейм
UNIт
 
Сообщения: 68
Зарегистрирован: 25 фев 2017, 19:56

Re: Хранение данных и поиск в хранилище

Сообщение ilkalawson 08 авг 2018, 13:42

У PlayerPrefs на Windows нет ограничений, так что буду его использовать для удобности.

да вот что то не понятно там про размер, официально сказано только про ограничение для web в 1мб, но на других форумах пишут ограничение в 1 мб для любого ключа на Windows. Хотя лично я сохранял помимо больших строк данных еще и небольшие изображения под одним ключом на andoid.
ilkalawson
UNIверсал
 
Сообщения: 412
Зарегистрирован: 19 янв 2015, 20:38
Skype: lawsonunity

Re: Хранение данных и поиск в хранилище

Сообщение KanycTa 08 авг 2018, 13:46

ВерховныйНоуНейм писал(а):Идея интересная.
У PlayerPrefs на Windows нет ограничений, так что буду его использовать для удобности.
Сортировать буду: "Weapon_" + WeaponId, true

Там-же только для web ограничение в 1mb, или я ошибаюсь?


Юзай JSON алёша! Удобно смотреть что вообще сохраняется...
Аватара пользователя
KanycTa
UNIт
 
Сообщения: 107
Зарегистрирован: 25 июл 2018, 18:41
Откуда: г. Ульяновск
  • Сайт

Re: Хранение данных и поиск в хранилище

Сообщение ВерховныйНоуНейм 08 авг 2018, 19:45

Я уже его использую, мне теперь нужен Prefs, как дополнение, и я хотел спросить есть ли ограничение на Windows версии.

А так спасибо! Вопрос решен.
Изображение
Аватара пользователя
ВерховныйНоуНейм
UNIт
 
Сообщения: 68
Зарегистрирован: 25 фев 2017, 19:56

Re: Хранение данных и поиск в хранилище

Сообщение 1max1 09 авг 2018, 05:13

ограничения есть везде, там вроде длина символов для сейва не должна превышать 100к, погугли я точно не помню
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11