유니티 토막 지식_10
Retr0의 교재를 따르는 실습은 저작권상 앞으로는 짤막하게 한 줄씩만 적도록 하겠다.
오늘은 배경 스크롤링에 대해 구현하였다.
현재 실습으로 2D 플랫포머 게임을 만들고 있는 만큼, 유니티 2D의 특징에 대해서 알아보겠다.
스프라이트
스프라이트는 유니티에서 사용하는 2D 그래픽 오브젝트이다. 유니티에서는 스프라이트 텍스처를 효율적이고 편리하게 합치고 관리할 수 있도록 4가지 도구를 제공한다.
-
스프라이트 생성기 : 스프라이트 생성기는 임시 플레이스 홀더 Sprite 그래픽스를 생성하여 그래픽스가 확보될 때까지 기다릴 필요 없이 개발을 진행할 수 있다.
-
스프라이트 에디터 : 스프라이트 에디터를 이용하면, 하나의 큰 이미지에서 스프라이트 그래픽스를 추출하고 이미지 에디터에서 하나의 텍스터 내에 여러 개의 컴포넌트 이미지를 편집할 수 있다. 이 기능을 이용하면 최적화에도 많은 도움이 되고, 하나의 큰 이미지를 이용해 스프라이트를 관리할 수 있다.
-
스프라이트 렌더러 : 스프라이트는 3D와 다르게 메시 렌더러가 아닌, 스프라이트 렌더러 컴포넌트로 렌더링된다.
-
스트라이프 패커 : 스프라이트 패커는 스트라이프 텍스쳐의 그래픽을 아틀라스라는 단일 텍스처에 최대한 모아서 관리할 수 있도록 한다. 스트라이프 패커를 이용하면 런타임 시점에 비디오 메모리의 사용, 성능을 최적화 할 수 있다.
타일 맵
타일 맵은 2D 레벨을 생성하기 위해 타일 에셋을 저장하고 처리하는 시스템이다. 타일에 배치되어있는 필수 정보를 타일 맵 렌더러와, 타일 맵 콜라이더와 같은 관련 컴포넌트로 전송한다.
타일 맵은 타일을 일정하게 깔아둘 수 있는데, 이를 이용하기 위해서는 타일 팔레트를 사용야한다. 타일 팔레트에 타일 에셋을 프리팹으로 저장 해 두고, 씬에 타일 형식으로 적용할 수 있다.
2D의 물리
2D의 물리 컴포넌트는 일반 RigidBody를 사용하면 안되고 RigidBody2D 컴포넌트를 사용해야한다.
또한 Vector도 Vector2를 사용하여 이동을 시킨다.
그렇다고 해서 Z축 위치가 의미가 없느냐 하면 또 그것도 아니다. 게임 화면에 보여지는 우선순위를 정하는 것에 Z축이 사용된다.
3D와 2D의 차이
2D 비디오 게임은 3차원 지오메트리가 없다. 또한 평면 이미지로 드로우되며, 카메라에는 원근법이 적용되지 않는다. 유니티를 이용한 2D게임의 대표작으로 할로우나이트가 있고, 국내 작품중에는 많은 인기를 끌었던 스컬도 유니티 2D를 이용하여 만들었다.
3D 비디오 게임은 일반적으로 3차원 지오메트리를 + 머티리얼, 텍스쳐와 함께 게임 월드를 솔리드환경, 캐릭터, 오브젝트로 표시되게 한다. 3D에서는 일반저긍로 원근법을 적용시킨다. 유니티 3D를 통해 만든 게임으로, ‘개비스콘 게임’으로 많이들 불리는 라스트 맨 스탠딩이라는 게임과, 5명이서 만들어낸 인디게임이지만 발매 5주만에 500만 다운로드를 기록한 발헤임도 유니티3D를 이용하여 만들었다.