2015-08-06 4 views
0

Я работаю над 2D-игрой в Unity.Как загрузить спрайты [] из папки «Ресурсы»

Сделал своего рода иерархию в моей директории проектов и нашел проблему с загрузкой массива (или списка, независимо) Sprites с Ресурсы.

Каталог:

Resources/ 
    rew1.png 
    rew1(Sprite) 
    rew2.png 
    rew2(Sprite) 

Я нашел много сообщений о том, как загрузить только один спрайт, но я хочу, чтобы сделать это «просто добавить».

Может кто-нибудь объяснить мне, как это сделать?

  1. Предоставлено: Название каталога в Ресурсы folder.
  2. Что делать: получить и загрузить все спрайты из каталога.

Примечание: Кстати, я не могу отправить фотографию моей папке, в связи с требованием 10+ репутации на StackOverflow :(

+0

Но вы можете опубликовать некоторый код с тем, что вы пробовали до сих пор, и где он не работает;) – Johan

+0

@Johan У меня есть решение xD omg, которое всегда случалось, когда я пишу или рассказываю кому-то о проблеме. var sps = Resources.LoadAll («Sprites/profile/Reward»); \t Debug.Log (sps == null? "Sps == null": "sps! = Null"); \t foreach (var sprite in sps) \t { Debug.Log (sprite.name); \t} \t this.GetComponent (). Sprite = sps [1]; – Kamiky

+0

Возможно, это потому, что полезно увидеть какой-то код, чтобы помочь человеку быстрее и, возможно, указать на какую-то легко обнаружить ошибку, используя принцип «4 глаз» – Johan

ответ

1

Вы можете попробовать, как:

Sprite[] sprites = (Sprite[])Resources.LoadAll(@"FolderName" + System.IO.Path.AltDirectorySeparatorChar + imageName)); 

Это ожидает, что все спрайты под Resources\FolderName\ и imageName может быть, например, a.png Так это будет выглядеть:

Resources\FolderName\a.png

** EDIT: **

Sprite sprites = Resources.Load<Sprite>(@"FolderName" + System.IO.Path.AltDirectorySeparatorChar + imageName)); 
+0

Я хочу знать, это сильно влияет на memeroy? Потому что если будет более 1000 спрайтов (теоретически), этот код будет загружать все эти 1000 спрайтов в память? Ну, если я хочу только получить имена, то найдите тот, который я ищу, и загружаю только один спрайт. – Kamiky

+0

Да, это повлияет, вы также можете найти только один спрайт. – NeverHopeless

+0

Действительно, использование спрайта было бы намного лучшей идеей, если вы собираетесь использовать 1000+ спрайтов. – Canvas

0

Небольшая утилита файл класса для Unity написана mstevenson. Преобразуйте абсолютный путь в относительный путь к папке «Активы» и получите список всех каталогов ресурсов в проекте. , FileUtility.cs

+0

Большое спасибо! Это было то, что я искал. – Kamiky

+0

@ Kamiky, пожалуйста, отметьте лучший ответ как «Принятый», чтобы люди, которые искали такое решение в будущем, быстро его нашли, а другие респонденты могут сосредоточиться на других неотвеченных вопросах. Благодаря! – Arx

Смежные вопросы