Unity2D_Basic #7

haechi·2021년 8월 7일
0

unity

목록 보기
28/39

210808
Unity2D_Basic #7


-Draw Call
cpu가 gpu에게 어떤 그림을 그려 달라 요청
Draw Call의 값이 낮을수록 게임이 가볍다.

-Batches
Draw Call을 포함하는 상위 개념.
Unity 5.0부터 Draw Call 대신 Batches를 기준으로 Stats에 렌더링 정보를 표현한다고 한다.
Mesh, Material, Shader, Draw Call등 정보를 종합적으로 계산
Batches가 낮을수록 최적화

-Sprite Atlas
여러 장의 Sprite 이미지를 한 장의 텍스쳐에 모아 사용하는 것
Unity -> Sprite Packer(Legacy) 와 Sprite Atlas를 제공
-why Sprite Atlas?
2D 게임 내 배경, 캐릭터, 적 등을 표현할 때 사용되는 이미지 에셋 -> 매번 렌더링 때 각 이미지 에셋 별로 1의 Batches가 증가
동일한 이미지를 사용하는 오브젝트가 100개 -> Batches 값이 1 -> Sprite Atlas를 사용하여 다른 이미지를 하나의 텍스쳐에 모아 두고 사용하면 서로 다른 이미지의 오브젝트를 100개 만든다고 해도 Batches 값은 1

Game view 에서 우측 상단 stats를 클릭하면 현재 상태를 볼 수 있다.

현재는 아무런 오브젝트가 없기때문에 Batches가 0이다.


오브젝트가 여러개여도 같은 이미지를 보여주기 때문에 Batches의 값은 1이다.


이제 새로운 이미지가 하나 더 있기때문에 Batches의 값이 2가 되었다.

여기서 단순히 이미지 에셋을 hierarchy view로 drag&drop으로 했는데 2D에서는 Texture Type이 Sprite(2D and UI)인 이미지 에셋을 drag&drop하면 해당 에셋을 출력하는 2D Sprite 오브젝트로 생성이 된다.

이 Batches의 수 조절을 위해 Sprite Atlas를 사용해보자

project view 에서 +버튼 -> 2D -> sprite atlas


1. Type : Master / Variant로 나뉜다. Variant는 Master SpriteAtlas를 등록하여 HD/SD 모드 등으로 설정하여 활용할 수 있음
2. Packing : 이미지 에셋들을 합칠 때 이미지가 회전되거나 얼마나 촘촘하게 배치될지 등 옵션
3. Objects for Packing : 이곳에 하나로 묶을 Sprite를 등록하고 등록이 완료되면 Pack Preview 버튼을 누른다.


이처럼 이미지들이 하나로 묶인것을 확인할 수 있다.

또한 Batches가 Atlas 기준으로 바뀐 것을 볼 수 있다.

주의할 점은 게임내의 모든 이미지 에셋을 하나의 Sprite Atlas로 묶게된다면 Batches는 1이지만 내부의 이미지 하나만 사용한다 하더라도 모든 이미지를 불러오기때문에 불륨이 큰 게임일수록 모든 에셋을 하나의 Atlas로 묶는 것은 무모하다. 한 화면에 함께 사용되는 요소나 하나의 오브젝트에 사용되는 것 등 관련성이 높은 것들로 묶는 것이 바람직하다.

참고
https://www.inflearn.com/course/%EA%B3%A0%EB%B0%95%EC%82%AC-%EC%9C%A0%EB%8B%88%ED%8B%B0-%EA%B8%B0%EC%B4%88/dashboard

profile
공부중인 것들 기록

0개의 댓글