- Home /
U4.6 - How to use individual sprites from an atlas in script?
I was wondering how to achieve this in Unity 4.6.
In NGUI, you would keep the atlas in the Resources folder, and use Resources.Load, etc. to access it then use the sprite name to find and use it. However, as atlases in 4.6 are not kept as files in the editor's Project window at all (but instead split into smaller files in Project>Library>AtlasCache folder), how would I be able to call and use specific sprites in this case?
Can anyone shed any light on this as I can't seem to find any guides/tutorials on this area?
Thanks
Answer by braco86 · Jan 06, 2015 at 11:57 AM
Hi, my solution for this was something like this in C# Code:
//Loads the Sprite/Atlas with all Subimages to a Sprite.
Sprite sprite = Resources.LoadAll<Sprite> ("SpriteName");
//Every UI is a GameObject, so you can instantiate
GameObject[] go = new GameObject[2];
go [0] = GameObject.FindGameObjectWithTag ("MoveLeft");
go [1] = GameObject.FindGameObjectWithTag ("MoveRight");
//and then finally
go [0].GetComponent<Image> ().sprite = sprite [0];
go [1].GetComponent<Image> ().sprite = sprite [1];
Or if you want you can also do a loop if you want. I hope this helps
Thanks for the suggestion.
However, looks like it uses the 'traditional' method of loading the sprite/atlas from the Resources folder. As atlases in Unity 4.6 are kept in the Project/Library/AtlasCache folder (stored as multiple files), this wont work, unfortunately.
Your answer
Follow this Question
Related Questions
What exactly is Padding Power in Editor Settings 0 Answers
Sprite Packer Causes Unity to Hang on 5.5.0f3 0 Answers
How do I access a texture slice's rect via scripting? 1 Answer
2 problems when workin with sprites on Unity3D 1 Answer
Why is atlas and individual sprites included in package? 0 Answers