작성
·
424
0
젬 떨구기 강좌에서 png를 adrressable로 긁어올 때 png 대신 내부의 이름으로 읽는다는 부분을 이해했습니다.
궁금한 점은 스프라이트 시트처럼 특정 텍스쳐 안의 다수의 스프라이트가 존재할 때 그 이름 별로 로드할 수 있는 방법이 있는 지 입니다.
key값으로 걸어보니 스프라이트 시트의 이름으로 걸리고 하부 아이템들의 이름을 탐색할 방법을 못찾아서 일단은 임시로 리소스 폴더에 보관후 리소스 loadAll을 하는 중인데 addressable로도 관리할 방법이 있는 지 알고 싶습니다.
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
스프라이트 시트 안에 있는 특정 스프라이트의 이름으로 로드하는 방법은 SpriteAtlas를 활용하는 것입니다. SpriteAtlas를 생성하고 내부의 Sprite 이름을 사용하여 로드할 수 있습니다.
주어진 key값으로 걸렸을 때 스프라이트 시트 이름이 나오는 것은 오른쪽에 있는 value값을 얻어올 때 스프라이트 시트의 이름을 사용했기 때문입니다. 그러나 가져온 value값으로부터 하부 아이템들의 이름을 얻을 수 있습니다. 이를 위해서는 특정 스프라이트 시트를 읽어들인 후 내부 아이템들을 순회하여 이름을 찾을 수 있습니다.
리소스 폴더에 파일을 보관한 후 loadAll을 하는 방법도 좋지만, 텍스쳐를 addressable로 관리하는 것이 더 효율적입니다. 이를 위해서는 텍스쳐와 해당 텍스쳐에 들어있는 스프라이트 정보를 별도의 Addressable asset으로 만들어두고, 이를 로드하여 사용하는 것이 좋습니다.
SpriteAtlas와 Addressable asset을 활용하여 특정 스프라이트를 로드하는 방법에 대한 자세한 내용은 Unity 공식 문서를 참고하세요.
더 궁금한 사항이 있다면 언제든지 댓글로 질문해주세요. 감사합니다.