Tilemap이란?
- 타일 형태의 리소스를 배치해 게임 월드를 표현하는 방법
Tilemap Editor 구성 요소
- Tile Palette
- Tilemap 오브젝트에 배치할 Tile Asset들을 등록해두는 저장소
- 팔레트에 있는 Tile Asset을 여러 속성에 따라 배치하거나 삭제 가능
- Tile Asset
- 맵에 배치할 수 있는 하나의 타일
- Grid 오브젝트
- 자식으로 배치되는 Tilemap 오브젝트들을 관리하는 역할
- Cell Layout, Cell Swizzle 정보를 이용해 배치되는 맵의 방식을 Rectangle, Hexagon, Isometric Z As Y등으로 설정 가능.
- Tilemap 오브젝트
- Tile Asset을 배치하는 공간으로 실제 게임에 보여지는 타일 형태의 게임 월드
- Grid 오브젝트의 자식으로 여러 개의 Tilemap 오브젝트 등록 가능.
Tile Palette
- 새로운 팔레트 생성 (CreateNewPalette)이 가능함.
Tile Asset
- Sprite : 현재 Tile Asset이 보여지는 이미지
- Color : 이미지의 색상
- Collider Type : 충돌 속성 (None, Sprite, Grid)
- Tile Asset을 Tile Palette에 설정.
Tilemap 오브젝트
- Tilemap을 추가하여 map 오브젝트 배치.
Grid 게임 오브젝트
- 현재 자식으로 있는 Tilemap 게임 오브젝트들을 관리
Grid 컴포넌트
- Cell Size : Grid 내에 각 셀의 크기
- Cell Gap : Grid 내의 각 셀 사이의 간격
- Cell Layout : 셀의 나열 방식
- Cell Swizzle : 축의 나열 변경
- 셀 사이즈, 레이아웃, Swizzle 정보를 이용하여 tilemap의 생김새를 바꿀 수 있음.
Tilemap 컴포넌트
- 현재 Tilemap 오브젝트에 대한 기본 설정
- 생성 : GameObject > 2D Object > Tilemap
- Grid 컴포넌트 변수 옵션
- Cell Size : (1, 1, 0)
- Cell Layout : Rectangle
- Cell Swizzle : XYZ
- 그리드를 선택한 상태로 tilemap 생성하게 되면 그리드 정보가 바뀌기 때문에 tilemap을 선택하지 않은 상태로 생성해줘야 함.
Tilemap 컴포넌트 종류
1. Hexgonal Flat Top Tilemap
- 육각형 형태
- 생성 : GameObject > 2D Object > Hexgonal Flat Top Tilemap
- Grid 컴포넌트 변수 옵션
- Cell Size : (1, 1, 0)
- Cell Layout : Hexgonal
- Cell Swizzle : YXZ
- Swizzle YXZ로 가로축이 더 좁음
2. Isometric Tilemap 게임오브젝트
- 마름모 형태
- 생성 : GameObject > 2D Object > Isometric Tilemap
- Grid 컴포넌트 변수 옵션
- Cell Size : (1, 0.5, 1)
- Cell Layout : Isometric
- Cell Swizzle : XYZ
3. Isometric Z As Y Tilemap 게임오브젝트
- Isometric과 보여지는 것은 같으나 높이 설정에 좀 더 유용
- 생성 : GameObject > 2D Object > Isometric Z As Y Tilemap
- Grid 컴포넌트 변수 옵션
- Cell Size : (1, 0.5, 1)
- Cell Layout : Isometric Z As Y
- Cell Swizzle : XYZ
Tilemap Renderer 컴포넌트
- 현재 Tilemap 오브젝트가 화면에 그려지는 방법에 대해 설정 (정렬 기준, 정렬 순서 등)
Tilemap에 Tile Asset 배치
- Select an area of grid (단축키 : S) : Tile Palette나 Tilemap 오브젝트에 있는 타일 선택
- Move selection with active brush (단축키 : M) : Tile Palette나 Tilema 오브젝트에 있는 선택된 타일로 이동
- Paint with active brush (단축키: B) : Tile Palette에서 선택한 타일을 Tilemap 오브젝트에 배치
- Paint a filled box with active brush (단축키: U) : Tile Palette에서 선택한 타일을 Tilemap 오브젝트에 사각형 범위로 배치
- Pick or marquee select new brush (단축키 : I) : Tile Palette나 Tilemap 오브젝트에 있는 타일을 복제해서 선택
- Erase with active brush (단축키 : D) : Tile Palette나 Tilemap 오브젝트에 있는 타일을 삭제
- Flood fill with active brush (단축키 : G) : Tile Palette나 Tilemap 오브젝트에 배치하여 빈공간에 사용하면 빈공간을 채우기 / 기존에 배치되어 있는 타일이면 동일한 타일만큼을 모두 교체
Tilemap 충돌 처리
- Tile에 오브젝트 단위로 충돌처리 설정을 할 수 있음.
- 하나의 grid 오브젝트가 여러개의 tilemap 오브젝트 관리.
Tilemap Collider 2D 컴포넌트
- Tilemap 오브젝트의 충돌 처리에 담당하는 컴포넌트
- Collider 2D까지 추가하면 충돌하는 범위 초록색 실선까지 보임
- 쓸모없는 부분까지 충돌 범위에 해당됨.
- Collider Type을 Sprite 할 시에는 오브젝트 모양대로 충돌 / Grid로 설정할 시에는 grid 사각형이 충돌 범위
- 해당 설정을 하게 되면 붙어 있는 타일들이 하나의 충돌범위로 설정되는 것을 확인할 수 있음.
'유니티' 카테고리의 다른 글
유니티 05. CharacterController 기반의 오브젝트 이동 (0) | 2024.05.09 |
---|---|
유니티 05. 2D Tilemap - Extras (0) | 2024.05.09 |
유니티 04. 2D 애니메이션 실습 (0) | 2024.05.01 |
유니티 04. 2D 스프라이트 / 애니메이션 (1) | 2024.05.01 |
유니티 04. 플랫폼 게임에서의 플레이어 이동, 점프 구현 (1) | 2024.05.01 |