이번 영상에서는 맵과 관련된 모든 처리를 담당하는 맵 매니저에 대해 설명드리겠습니다.

맵 매니저는 타일맵을 생성하고, 플레이어를 생성하며,

맵 배치 툴에서 배치된 몬스터, NPC, 워프 오브젝트를 스폰하는 역할을 담당합니다.


MapConstants

MapConstants는 맵 타입, 몬스터, NPC의 배치 정보를 담고 있는 JSON 파일명, 프리팹 이름 등의 설정 값을 정의하는 클래스입니다.

저는 이러한 설정 값을 정의하는 클래스를 찾기 쉽게 하기 위해 파일명에 Constants를 붙이는 네이밍 규칙을 사용하고 있습니다.

파일을 찾으실 때 이 점을 참고하시면 도움이 될 것입니다.


Awake

맵 매니저의 Awake() 함수에서는 캐릭터를 로드하는 MapLoadCharacters 클래스를 초기화합니다.

그리고 CreateGrid() 함수를 실행하여, 타일맵이 배치될 Grid 오브젝트를 생성합니다.


CreateGrid

CreateGrid() 함수에서는 ConfigTags 클래스에 정의된 GridTileMap 이름으로 빈 오브젝트를 생성하고, 여기에 Grid 컴포넌트를 추가합니다.

그 후, GGemCoMapSettings에 정의된 Grid Cell Size를 적용하고,

사각형 타일을 사용할 것이므로 cellLayoutGridLayout.CellLayout.Rectangle로 설정합니다.


Start

Start() 함수에서는 게임 시작 시 로딩할 초기 맵을 불러옵니다.