2021-06-02~03, 05 개발일지
프로젝트/Color Lim 개발일지

2021-06-02~03, 05 개발일지

맵 생성 관리에 대해 한번 정리하고자 한다

 

목표

JSON으로 맵 데이터를 저장, 로드하여 생성한다

 

제작 이유

씬마다 스테이지를 만들어 두고 씬을 불러오면 용량이 커짐

 

망설이는 이유

스테이지를 만들어두고 관리하는게 테스트하기나 관리하기 편하다라는 의견 존재

=> 스테이지 생성 버튼 누르면 씬에 바로 스테이지 생성되게끔 커스텀 에디터를 만들면 상관 없지 않을까?

 

스테이지 로드 (맵 로드, 플레이어 생성 위치 포함, 적 스폰 위치 포함, 트랩도 타일처럼 찍음(피봇 위치 조정))

타일맵엔 타일들만.

유니티의 타일맵에 현재 찍혀있는 타일들의 정보를 JSON화

Map Load시 JSON정보를 바탕으로 타일을 찍는 형식으로 가보자

 

필요한 것

커스텀 에디터로 Map Load, Save 제작

버튼

존재하는 타일 Json파일 목록

타일이름 누른 후 Load 버튼 누르면 씬에 새로운 타일맵에 저장된 Json 데이터 기반으로 맵 생성

Json엔 타일의 name 저장, name에 맞는 타일을 타일맵에 생성하는 형식

 

타일맵 오브젝트 드래그앤드랍하는 칸

이름 입력하는 인풋필드

 

로드할 맵 이름 선택 -> Map Load시 Hierarchy에 해당 맵 생성 (딕셔너리<enum, MapData> 사용)

 

알아야 할 것들

Tilemap

유니티에서 타일맵을 생성하면 생성되는 Tilemap입니다

스크립트로 들어가셔서 보거나 Unity Document를 통해서 내부 API들을 볼 수 있는데요

 

TileBase

Tile Palette에 들어있는 모든 Tile들은 TileBase를 상속받는다

 

 

Tile

TileData

 

타일을 불러오려면 위치와 어떤 타일인지 알려주는 정보가 필요하다

맵 에디터를 처음부터 만들어서 쓰는 경우 enum 등으로 타일을 구분해서 정보를 저장하고 불러오면 되지만

유니티 타일맵을 사용하면서 타일들의 정보를 저장하고 불러오려면 어떻게 하는게 좋을까?

유니티 타일들은 Scriptable Object로 생성되어 있다.

 

아니 그 전에 이런식으로 Json형식으로 저장하고 불러오는게 이득일까?

Json으로 저장 및 불러오기를 해보질 않아서 아직 감이 잘 오지 않는다

1. 맵마다 Tilemap으로 만들어 둔 뒤 프리팹화 => 만들어진 프리팹을 스테이지 로드할 때 같이 불러온다

2. 맵마다 Tilemap을 찍은 뒤 Json으로 타일, 위치 저장 => 스테이지 로드할 때 저장된 Json파일 기반으로 Tilemap을 Load한다

많은 차이가 있을까?

모르면 해봐야겠지. 가즈아~

 

Editor에는 저장된 Map파일이 선택가능해야 하고 선택 후 Load 버튼을 누르면 Tilemap에 Map이 로드된다

 

 

 

 

유니티 러닝 맵 에디터

던그리드 맵 에디터

게임 맵 관리

타일맵의 생성

다수의 스테이지 관리

스테이지 구성

유니티 타일맵 최적화, 성능

고박사님 Json Map 구성

코드몽키 커스텀 타일맵

Json 직렬화

 

unity 2d tilemap generator

 

'프로젝트 > Color Lim 개발일지' 카테고리의 다른 글

2021-06-09~11 개발일지  (0) 2021.06.11
2021-06-07~8 개발일지  (0) 2021.06.08
2021-06-01 개발일지  (0) 2021.06.01
2021-05-30 개발일지  (0) 2021.05.31
2021-05-28 개발일지  (0) 2021.05.29