@Zimaell

Как правильно получить перечень файлов в папке?

В сети нашел такой вот пример
int CountLevels = 0;

void Levels(){
DirectoryInfo dir = new DirectoryInfo("Assets/Resources/Maps/" + SubLevel + "/");
FileInfo[] info = dir.GetFiles("*.*");
foreach(FileInfo f in info){ if(f.Extension == ".txt") ++CountLevels; }

for(int lvl = 1; lvl < (CountLevels + 1); ++lvl){
  Levels[lvl] = Instantiate(levelPrefab, transform) as LevelPrefab;
  Levels[lvl].transform.SetParent(ContentScroll.transform);
  Levels[lvl].Level = lvl;
  }
}

То есть получить пока что количество файлов в папке и вывести столько же префабов, далее исходя из названий уровней (1,2,3....) они будут учитываться.
Проблема в том что в юнити все выводится, а вот на устройстве нет, вся проблема оказалась вот в этих строках
DirectoryInfo dir = new DirectoryInfo("Assets/Resources/Maps/" + SubLevel + "/");
FileInfo[] info = dir.GetFiles("*.*");
foreach(FileInfo f in info){ if(f.Extension == ".txt") ++CountLevels; }

Подскажите как правильно получать количество файлов в папке и их названия?
  • Вопрос задан
  • 212 просмотров
Решения вопроса 2
GavriKos
@GavriKos Куратор тега Unity
На устройстве уже нет никаких папок. Не используйте подход, ориентированный на файловую систему. Используйте конфиги.
Ответ написан
freeExec
@freeExec
Участник OpenStreetMap
Потому что на устройстве, да и после сборки проекта под винду, никакой папки Ресурсов уже нет. Соответственно и файлов там то же.
Напрямую с файлами в юнити работать не нужно. Нужно работать с Ассетами.
С вашим подходом работает вариант, когда вы перед сборкой проекта ищите свои уровни, и сохраняете их имена в какой-нибудь файлик. А затем уже во время работы читаете файл.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы