Unity3d загрузить спрайт из папки текстуры
У меня есть около 200 спрайтов (jpg-картинки) в Assets>Textures>Pictures
, и у меня есть GameObject
с <SpriteRenderer>
. Есть ли способ для меня загрузить спрайты из этой папки в этот GameObject
в коде?
Что-то вроде Resources.Load<Sprite>("path");
Спасибо.
3 ответа:
Поместите вашу папку в папку ресурсов. Вот так:
Assets/Textures/Resources/
Тогда вы можете сделать следующее:
private Object[] textures; void Awake() { textures = Resources.LoadAll("Path"); }
Вы должны хранить их как
Objects
. Однако, если вы хотите использовать их позже, вы можете сделать что-то вроде этого.texture = textures[i] as Texture;
Ну, решение таково:
Resources.Load<Sprite>("path")
для одного спрайта илиResources.LoadAll<Sprite>("path")
, Если вы хотите загрузить их все сразу.Чтобы использовать эти методы, вам нужно переместить ваши спрайты в подкаталог с именем "Resources", например,
Assets/Textures/Pictures/Resources
.Эта и другие сведения о последствиях прохождения этого пути более подробно описаны в справочнике сценариев :
Все активы, находящиеся в папке с именем "ресурсы", могут быть доступны в любом месте папки активов. через ресурсы.Функции нагрузки. Может существовать несколько папок "ресурсы", и при загрузке объектов каждая из них будет проверена.
В Unity вы обычно не используете имена путей для доступа к активам, вместо этого вы предоставляете ссылку на актив, объявляя переменную-член, а затем назначаете ее в инспекторе. При использовании этой техники Unity может автоматически рассчитать, какие активы используются при построении игрока. Это радикально сводит размер ваших игроков к активам, которые вы на самом деле использовать в игре. При размещении ресурсов в папках " ресурсы "этого сделать нельзя, поэтому все ресурсы в папках" ресурсы " будут включены в сборку.
Поместите
awesome.png
вAssets/Resources/
(у вас могут быть вложенные папки) и используйте:GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("awesome"); // No file extension.
Http://docs.unity3d.com/ScriptReference/Resources.html
Есть также LoadAll, который "загружает все активы в папку или файл по пути в папке ресурсов."