타일맵이란?
타일맵 (Tilemap) 이란, 2D 레벨을 구현할때, 타일 에셋들을 가져와 관리하고 타일들의 배치와 속성을 관리하는 컴포넌트입니다.
쉽게 말해서, RPG만들기 툴처럼 타일같은 그림파일을 불러와 쉽게 팔레트에 등록시켜 찍어내듯이 맵을 구현할수 있다는 거겠죠?
그래서 유니티에서 지형을 구현할때 이런 기능이 없었을땐 외부 api를 쓰거나 (Tiled 등) 에셋을 구매하거나, 하물며 직접 구현해야 하기도 했습니다. 그래서 타일기반의 게임 구현이 많이 쉬워졌죠.
Unity 2017.2 버전 부터, 유니티 2d 환경에서 좀더 쉽게 타일기반의 맵을 구현할 수 있게 자체 라이브러리인 타일맵을 제공하고 있습니다.
또한 2018 버전을 거듭하면서 Hexagonal, Isometric Tilemap 또한 구현이 가능해졌습니다.
다양한 시점과 타일 기능을 제공하면서 편해진 유니티 타일맵, 한번 사용해봅시다 😁
타일맵 프로젝트 세팅하기
우선 타일맵을 적용할 2D 프로젝트를 생성합니다. 기존에 2D 프로젝트가 있으신 분들은 스킵하셔도 무방합니다.
타일맵 에디터 불러오기 & 팔레트 만들기
타일맵 팔레트를 띄우기 위해서, 패키지 매니저를 열어서 타일맵 에디터를 불러와야합니다.
Window>Package Manager를 통해 패키지 매니저를 불러옵니다.
그리고 2D Tilemap Editor 을 선택해주시고, 우측 하단 Install 버튼을 통해 타일맵 에디터를 받아줍니다.
이후 Window > 2D > Tile Palette 를 통해 타일맵 팔레트를 열어줍니다.
그리고 상단에 Create New Palette 이 써진 드롭다운을 열어
이름(Name), 타일의 모양(Grid), 타일의 사이즈(Cell Size) 를 입력해줍니다.
이 후 팔레트 파일의 경로를 지정해주고, 팔레트 파일을 생성합니다.
타일 만들기
타일을 만들기 앞서, 저는 128x128 사이즈의 정사각형 타일 이미지를 한개 만들어뒀습니다.
타일 이미지의 사이즈를 기억해둡시다.
타일 이미지를 프로젝트 창에 드래그해 임포트해줍시다.
임포트 그대로의 설정으로는 타일에 적용할수 없기 때문에, Texture Type을 Sprite로 변경해주고, Apply 해줍니다.
그리고 프로젝트 탭에서 우클릭>Create>Tile 을 통해 타일 파일을 만들어줍니다.
그리고 만들어진 타일을 클릭해 속성을 띄워주시고,
Sprite 탭을 선택해서 미리 만들어준 타일 이미지 파일을 선택해줍니다.
이렇게 타일 파일을 하나 만들고, 스프라이트까지 적용하였습니다. 😗
타일을 타일맵 팔레트에 넣기
그럼 이 타일 파일을 팔레트에 넣어봅시다~
적용법은 간단합니다. 만들어진 타일 파일을 타일 팔레트 창에 드래그해주시면 됩니다.
여기서 상단의 팔레트 드롭다운을 확인하셔서, 넣고자 하는 팔레트가 맞는지 확인해주세요!
성공적으로 적용된 모습입니다~
타일맵 만들어서 타일 그려보기
하이라키 탭에서 우클릭>2D Object>Tilemap 을 통해 새 타일맵을 씬에 생성해줍니다.
그리고 팔레트 탭에서 Active Tilemap 에서 만들어주신 타일맵을 선택해주시고,
붓 아이콘을 선택하시고, 적용해주신 타일을 선택해줍니다.
그리고 그대로 에디터 화면에 그림판을 그리듯이 그려주시면, 타일이 그리드에 박히긴 하지만,
뭔가 타일이 그리드에 맞지 않는 모습이 보입니다.
타일 이미지를 만드실때, 제가 크기를 기억해두라고 말한것 기억나시나요?
타일 이미지 파일을 선택해주시고, 인스펙터 탭에서 Pixels Per Unit 을 가로/세로 길이로 수정해줍니다. (정사각형 기준)
수정 후, Apply를 해주시면, 그리드에 맞게 크기가 조정된 모습을 확인하실 수 있습니다.
이렇게 타일을 만들고, 팔레트에 타일을 넣어서, 씬에 타일맵을 만들어서 타일을 그리는 과정을 확인하실수 있습니다 🥰
Bonus. 타일맵 충돌 적용하기 (Tilemap Collider 2D)
하이라키 탭에서 만들어둔 타일맵을 선택해줍니다.
그리고 인스펙터 탭에서, 하단의 Add Component 버튼을 누르셔서
Tilemap Collider 2D와, Composite Collider 2D를 넣어줍니다. (RigidBody 2D는 Composite Collider 2D와 같이 딸려옵니다.)
그리고 Tilemap Collider 2D에 Used By Composite를 체크해주셔서 두 콜라이더를 이어줍니다.
Tilemap Collider는 타일맵에 그려진 타일들에 충돌 영역을 부여해주는 컴포넌트입니다.
그리고 Composite Collider는 Tilemap Collider와 같이 복수로 된 충돌 영역을 하나의 폴리곤 or 외곽선 형태의 충돌 영역으로 합쳐줍니다.
폴리곤으로 합쳐줄지, 외곽선으로 합쳐줄지는 Composite Collider 2D 내 Geometry Type에서 선택 가능합니다.
⚠️ 그리고 타일맵이 고정되어야 할(중력의 영향을 받지 말아야 할) 지형이라면, RigidBody 2D 탭에서 Body Type을 Kinematic으로 변경해줍시다!
(개발환경)
OS : Windows 10 / 유니티 버전 : 2019.4.12f1 (LTS)
2018 이하 버전은 UI 배치나 누락된 기능이 있을 수 있습니다! 이부분에 대해선 코멘트 남겨주세요~
'프로그래밍 > Unity' 카테고리의 다른 글
[Unity] 시네머신(Cinemachine) 1 - 편리한 카메라워크 구성하기 (1) | 2020.10.25 |
---|---|
[Unity] 타일맵 (Tilemap) 2 - 타일맵의 기능을 확장해보자! (2D Extras) (0) | 2020.10.16 |