Как создать в билде отдельную папку?
Объясняю ситуацию, делаю ритм игру , в игре например 5 карт ,тобишь 5 папок с музыкой,бэкграундом,текстом песни,таймингами для карты должно выглядеть примерно так:
Папка с картами\Карта_1\(и тут файлы) музыка.mp3,текст.txt,бэкграунд.png
И уже из этой папки Карта_1 я в юнити считываю музыку текст картинку на фон. Если в едиторе я могу всё это загружать в Resources ,то в билде мне нужно как то создать отдельную папку и туда например загрузить по шаблону свои карты для прохождения.
Если не сложно хотелось бы попросить, узнать как вообще например мне обращаться в коде к этой папке если получить всё таки её создать в билде,что бы оттуда инфу брать.
У всех же разные пути на компе.
Ответы (2 шт):
Если речь только о Windows, то Application.dataPath может помочь.
string rootPath = Path.Combine(Application.dataPath, "..");
Дальше можно создать папку как на вашем скриншоте.
string mapsPath = Path.Combine(rootPath, "UserMaps");
Directory.CreateDirectory(mapsPath);
И так далее по образу и подобию можно создать нужное дерево каталогов.
Либо в качестве папки для записи данных на любой платформе, рекомендуют использовать Application.persistentDataPath, она как раз и предназначена для сохранения данных.
Вопрос не только Как?, но и Где?.
Касаемо Где?, поскольку в разных OS, разные права доступа, которые ограничены и имеются директории, предназначенные для хранения данных.
Windows:C:/Users/<UserName>/AppData/LocalLow/<AppName>Adroid:<Storage>/Android/Data/<AppIdentifire>/files- ...
Для этого в Unity3D есть Application.persistentDataPath.
А на тему Как?, поможет C#, позволяющий создать / удалить / проверить существование папки или файла.
Однако например в Android всё строже, за рамками отведённого места без полученного от пользователя разрешения на чтение / запись, не сунешься. Для скачивания и загрузки файлов, нужно использовать DownloadHandler и UploadHandler, но проверить существование, можно с помощью всё того-же File.Exists(path).
