Как добавить двоичный файл в проект и далее в apk?

Программирование для iPhone & Android

Как добавить двоичный файл в проект и далее в apk?

Сообщение crr 07 ноя 2018, 10:49

Собсно сабж. Предыстория такова что вся игровая информация: карты, бонусы и пр., также сохранения (данные: ~8 мб цифр и текста, почти всё - массивы) из класса - синглтона посредством бинарной сериализации льются в файл с названием "GameData" лежащий в корне проекта. При сборке под ПК такой подход прокатывал, файл читался/писался без проблем. Однако после сборки апк игра не запустилась ввиду отсутствия сего файла. То есть мне надо либо понять как уговорить юнити добавить этот файл в проект, либо хранить данные каким-то другим способом. Прошу подсказать или пнуть в правильном направлении.
crr
UNец
 
Сообщения: 3
Зарегистрирован: 07 ноя 2018, 10:21

Re: Как добавить двоичный файл в проект и далее в apk?

Сообщение DbIMok 07 ноя 2018, 16:52

варианта 2:
1. TextAsset (.bytes) https://docs.unity3d.com/Manual/class-TextAsset.html и грузить по ссылке в сцене (она потяжелеет) или через Resources
2. StreamingAssets https://docs.unity3d.com/Manual/StreamingAssets.html и грузить через WWW/UnityWebRequest (пусть названия классов не вводят в заблуждение, это локально)
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Как добавить двоичный файл в проект и далее в apk?

Сообщение crr 08 ноя 2018, 10:00

Спасибо, выбрал второй вариант, файл положил в StreamingAssets, проект его подцепил, что видно по увеличившемуся размеру apk, галку чтения с sdcard в свойствах выставил, т.е. приложение при первом запуске начало запрашивать доступ к фс.

Конструкция получилась такая:
Синтаксис:
Используется csharp
WWW loadGD = new WWW (Application.streamingAssetsPath+"/GameData");
File.WriteAllBytes (Application.persistentDataPath + "/GameData", loadGD.bytes);
 


Однако файл на выходе создается нулевой длины, хотя пробовал после File.WriteAllBytes смотреть значения loadGD.progress и loadGD.bytesDownloaded, прогресс равен 1 и размер скачанного равен размеру файла, т.е. проблема где-то в записи на диск или я как-то криво использовал File.WriteAllBytes
crr
UNец
 
Сообщения: 3
Зарегистрирован: 07 ноя 2018, 10:21

Re: Как добавить двоичный файл в проект и далее в apk?

Сообщение crr 08 ноя 2018, 10:18

Проверю только вечером, но судя по https://stackoverflow.com/questions/42453989/file-writeallbytes-is-creating-a-0-byte-file и https://answers.unity.com/questions/52268/saving-local-data-through-www.html, надо завернуть загрузку в корутину и вызывать уже ее.
Прошу прощения за донный характер вопроса)
crr
UNец
 
Сообщения: 3
Зарегистрирован: 07 ноя 2018, 10:21


Вернуться в iPhone & Android

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

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