Deff_Dev

[Unity/C#] Addressable로 Sprite Atlas 로드 및 저장 본문

Unity(유니티)/유니티 공부

[Unity/C#] Addressable로 Sprite Atlas 로드 및 저장

Deff_a 2024. 8. 13. 23:59

 

미션 창에 사용되는 유닛 썸네일이 배칭이 안되는 것을 확인했다.

( Batch가 40 정도 확 오른다.)

 

Sprite를 배칭하기 위해서 Sprite Atlas를 사용했다.

 

[트러블 슈팅]

 

[Unity/C#] Sprite Atlas Packing 시 Rotation 될 때

Atlas를 만들고 Packing을 했는데 Sprite가 회전되어 있는 경우가 있었다.   아틀라스의 Allow Rotation, Tight Packing이 기본적으로 체크되어 있을 텐데, 이 옵션들을 체크해제 하면 된다.  Allow Rotation : Spr

deff-dev.tistory.com

 

 

 

Sprite Atlas를 어드레서블 그룹에 추가했다.

 


 private async Task LoadThumbnail()
 {
        int idx = 0;
        // SpriteAtlas 로드
        SpriteAtlas atlas =  await AddressableManager.Instance.LoadAsset<SpriteAtlas>(EAddressableType.Thumbnail, idx);

		// Unit 이름이 정의된 Enum 탐색 
        foreach (var enumValue in Enum.GetValues(typeof(EUnitRCode)))
        {
            int intEnumValue = (int)enumValue;
            // 해당 이름을 가진 Sprite Load
            Sprite loadThumbnail = atlas.GetSprite(enumValue.ToString());
    		
            // 데이터 저장   
            if (UnitBases.TryGetValue(intEnumValue, out var data))
            {
                data.Thumbnail = loadThumbnail;
            }
            else
            {
                Debug.LogError($"{intEnumValue} => Thumbnail Load Error");
            }
        }
    }

 

현재 프로젝트에 사용하는 코드이기 때문에 흐름만 참고하면 될 것 같다.

 

 

이렇게 Load한 썸네일을 확인해본다면 Batch가 40정도 확 줄은 것을 볼 수 있다.