모르는 건 아닌데 텍스처 하위에 있는 스프라이트들을 개별적으로 로드하고 싶어서 이래저래 찾아봤는데 없는 것 같다.
예를 들면 "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];
}
이렇게 만들어 놓으면 스프라이트 이름으로 스프라이트를 가져올 수 있다.
'유니티 > 팁, 정보 노트' 카테고리의 다른 글
[Unity]UI뒤로 클릭 막기 (0) | 2019.07.02 |
---|---|
[Unity]Array를 List로 변환 (0) | 2019.04.15 |
[Unity]인자가 있는 별도의 함수 Listener에 등록 (0) | 2019.04.15 |
[Unity]StringToEnum, 드롭다운 메뉴 선택된 텍스트 (1) | 2019.04.15 |
[Unity]월드에 그려진 스프라이트 사이즈(2D) (0) | 2019.02.10 |