이번 영상에서는 맵과 관련된 모든 처리를 담당하는 맵 매니저에 대해 설명드리겠습니다.
맵 매니저는 타일맵을 생성하고, 플레이어를 생성하며,
맵 배치 툴에서 배치된 몬스터, NPC, 워프 오브젝트를 스폰하는 역할을 담당합니다.
MapConstants는 맵 타입, 몬스터, NPC의 배치 정보를 담고 있는 JSON 파일명, 프리팹 이름 등의 설정 값을 정의하는 클래스입니다.
저는 이러한 설정 값을 정의하는 클래스를 찾기 쉽게 하기 위해 파일명에 Constants
를 붙이는 네이밍 규칙을 사용하고 있습니다.
파일을 찾으실 때 이 점을 참고하시면 도움이 될 것입니다.
맵 매니저의 Awake()
함수에서는 캐릭터를 로드하는 MapLoadCharacters 클래스를 초기화합니다.
그리고 CreateGrid()
함수를 실행하여, 타일맵이 배치될 Grid 오브젝트를 생성합니다.
CreateGrid()
함수에서는 ConfigTags
클래스에 정의된 GridTileMap
이름으로 빈 오브젝트를 생성하고, 여기에 Grid 컴포넌트를 추가합니다.
그 후, GGemCoMapSettings
에 정의된 Grid Cell Size를 적용하고,
사각형 타일을 사용할 것이므로 cellLayout
은 GridLayout.CellLayout.Rectangle
로 설정합니다.
Start()
함수에서는 게임 시작 시 로딩할 초기 맵을 불러옵니다.