[Unity] SpriteAtlas GetSprite 함수가 동작하지 않는 문제

2024. 12. 4. 16:03·유니티(Unity)/이슈 도감

📌 개요

 

SpriteAtlas GetSprite 함수가 동작하지 않는 문제

 

해결책

① GetSprite(string name)의 함수 인자가 Packed Sprite Name과 동일한지 체크

② Project Settings - Editor - Mode 값이 Sprite Atlas V2 - Enabled 인지 체크

 

 

 


📌 문제 분석

 

private Sprite GetSprite(AtlasType atlasType, int id)
{
    if (_loadedAtlasTypeDict.TryGetValue(atlasType, out SpriteAtlas atlas))
    {
        return atlas.GetSprite($"{atlasType}_{id}");
    }
    else
    {
        Debug.LogError($"아틀라스 타입 '{atlasType}'이 로드되지 않았습니다.");
    }
    return null;
}

 

코드 설명

  • [ _loadedAtlasTypeDict ] 딕셔너리에서 [ atlasType ] enum에 해당하는 value을 체크
    • 없다면 에러 메세지를 출력
    • 있다면 atlas.GetSprite 메서드를 통해 Sprite을 가져오고 반환

 

 

하지만 Sprite가 계속 null이 뜨면서 제대로 불러오지 못하고 있습니다.

 

 

 


📌 원인 분석 및 해결책

 

 

디버그를 해보겠습니다.

 

일단 SpriteAtlas을 제대로 불러와지긴 했군요.

 

그렇다면 왜 GetSprite은 null을 반환할까요?

 

 

 

 

지금보니 SpriteCount 값이 0이네요.

 

아무래도 SpriteAltas는 가져왔지만 내부 패킹된 Sprite들은 메모리에 로드되지 않은 것 같습니다.

 

 

 

해결 방법은 [ Project Settings ] - [ Editor ] - [ Mode ] 값을 Sprite Atlas V2 - Enabled로 변경하면 됩니다.

 

저는 런타임 환경에서 어드레서블을 활용하여 SpriteAtlas을 메모리에 할당합니다.

 

이 방식은 V1은 제공하지 않기 때문에 V2을 사용해야 합니다.

 

 

 

'유니티(Unity) > 이슈 도감' 카테고리의 다른 글

[Unity 이슈] InitializeOnLoad 주의 사항  (0) 2024.12.23
[Unity 이슈] 커스텀 패키지 Addressable 이슈  (1) 2024.12.22
[Unity 이슈] 커스텀 패키지 종속성 문제  (1) 2024.12.21
[Unity] 직렬화가 되지 않는 문제  (1) 2024.12.06
[Unity] 마우스 좌표와 월드 좌표 변환 주의 사항  (2) 2024.12.04
'유니티(Unity)/이슈 도감' 카테고리의 다른 글
  • [Unity 이슈] 커스텀 패키지 Addressable 이슈
  • [Unity 이슈] 커스텀 패키지 종속성 문제
  • [Unity] 직렬화가 되지 않는 문제
  • [Unity] 마우스 좌표와 월드 좌표 변환 주의 사항
천냥 컴퍼니
천냥 컴퍼니
안녕하세요, 게임 개발자 천냥입니다! 게임을 제작하는 개발자들에게 도움이 될만한 정보와 지식을 제공하는 블로그입니다 ;)
  • 천냥 컴퍼니
    천냥의 게임 개발 일지
    천냥 컴퍼니
  • 전체
    오늘
    어제
    • 분류 전체보기 (97) N
      • 유니티(Unity) (66) N
        • 콘텐츠 개발 (7)
        • 툴 개발 (17) N
        • 이슈 도감 (10)
        • 최적화 기법 (4)
        • 쉐이더 (3)
        • 포톤 (0)
        • 이론 정리 (15)
        • 유용한 패키지 정리 (3)
        • 패키지: Cinemachine 정리 (7)
      • C# (2)
      • IT (29)
        • 기술 정리 (2)
        • 알고리즘 (26)
        • Git (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    코테
    C++
    ubuntu
    upm 개발
    Unity
    upm
    Cinemachine
    Shader
    최적화
    코딩 테스트
    오블완
    티스토리챌린지
    쉐이더
    시네머신
    유니티
    custom package
    커스텀 패키지
    c# 서버 개발
    addressable
    verdaccio
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
천냥 컴퍼니
[Unity] SpriteAtlas GetSprite 함수가 동작하지 않는 문제
상단으로

티스토리툴바