본문 바로가기
유니티/팁, 정보 노트

[Unity]2D 아틀라스 로드(멀티플 텍스쳐,스프라이트 로드)

by 개발펭귄 2018. 6. 11.

모르는 건 아닌데 텍스처 하위에 있는 스프라이트들을 개별적으로 로드하고 싶어서 이래저래 찾아봤는데 없는 것 같다.



예를 들면 "Atlas" 라는 멀티플 텍스쳐의 "Atlas001" 이라는 이름의 스프라이트를 로드하고 싶다.


이 방식으로는 안된다.



Resources.Load<Sprite>("Sprites/Atlas/Atlas001"); (X)





아래와 같은 방법으로 일단 스프라이트들을 다 로드해야 한다.



Sprite[] _sprites = Resources.LoadAll<Sprite>("Sprites/Atlas");




좀 더 나아가 Key, Value 자료구조를 이용해서 다음과 같이 쓸 수도 있다.



Sprite[] _sprites = Resources.LoadAll<Sprite>("Sprites/Atlas");


Dictionary<string, Sprite> dictionary = new Dictionary<string, Sprite>();

for(int i = 0; i < _sprite.Length; i++)

{

dictionary[_sprite[i].name] = _sprite[i];

}




이렇게 만들어 놓으면 스프라이트 이름으로 스프라이트를 가져올 수 있다.