스프라이트 아틀라스
유니티에서 아틀라스는 텍스처를 한곳에 모은 한장의 큰 텍스처라고 할수있다.
텍스처 하나씩 따로따로 사용하고 관리하는것은 효율적이지 못하다.
아틀라스를 사용하면 드로우콜을 줄일 수 가 있다.
드로우콜?:
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가 줄어든것을 볼 수 있다.
'유니티 > 최적화' 카테고리의 다른 글
유니티_최적화) 라이트맵 인라이튼I #1 (0) | 2019.02.26 |
---|---|
유니티-최적화) 스태틱(정적) 오브젝트 / Occlusion Culling오클루젼 컬링 (1) | 2019.02.11 |
유니티) 오브젝트 풀링 Object Pooling (0) | 2019.01.14 |
유니티) 가비지 컬렉터 (Garbage Collector) /C#) 가비지 컬렉션 (0) | 2019.01.13 |
유니티) 버튼(프리펩,Prefab) 동적생성 (0) | 2018.12.10 |