유니티) 아틀라스 Sprite Atlas이용해 드로우콜을 줄여보자
스프라이트 아틀라스
유니티에서 아틀라스는 텍스처를 한곳에 모은 한장의 큰 텍스처라고 할수있다.
텍스처 하나씩 따로따로 사용하고 관리하는것은 효율적이지 못하다.
아틀라스를 사용하면 드로우콜을 줄일 수 가 있다.
드로우콜?:
CPU가 GPU에게 어떠한 그림을 그려 달라고 요청하는것인데 많을 수록 게임이 무거워지고 프레임 저하가 올 수 도 있다.
프로젝트 셋팅하기
Unity 에디터 설정(Edit > Project Settings > Editor)에서 변경
빌드에 대해 활성화(Enabled for Builds): 플레이 모드에서가 아니라 빌드에 대해서만 패킹을 사용하고 싶을 때
항상 활성화(Always Enabled): 패킹된 스프라이트가 플레이 모드 동안 스프라이트 아틀라스에서 텍스처를 확인하게 만들고, 편집 모드에서 원본 텍스처의 텍스처를 확인하게 만들고 싶을 때 사용
아틀라스 생성
Assets -> Create -> Sprite Atlas
이렇게 보라색 이미지가 생성된 것을 볼 수 있다.
이미지 패킹(묶기)!
그냥 드래그앤 드롭으로 끌어다 놓으면 된다.(폴더를 옮겨도 됨)
Type : Variant 다른 생성된 아틀라스를 포함시킬 수 있다.
스크립트 작성
using UnityEngine.U2D;
using UnityEditor.Experimental.U2D;
public class test : MonoBehaviour
{
public SpriteAtlas m_atlas;
public Image m_img1;
void Start()
{
m_img1.sprite = m_atlas.GetSprite("blue_boxCheckmark");
~~~생략
}
}
비교하기
<일반적인 Sprite를 넣었을때>
<아틀라스를 사용했을때>
Batches가 줄어든것을 볼 수 있다.