GameDevelop/Unity팀프로젝트

유니티 로그라이크 맵 관리 시스템 제작

도도돋치 2025. 7. 4. 21:14
Contents 접기
728x90

오늘은 맵을 여러 개 순서대로 관리하는 MapManager 구조를 만들었다.

 

주요 내용:

 MapManager

  • 맵을 배열 순서대로 하나씩 켜고 끔
  • 플레이어 위치와 카메라 경계 자동 변경
  • ScreenFader로 페이드인/아웃 처리
  • Update()에서 현재 맵이 클리어됐는지 직접 체크

 MapComponent

  • 각 맵의 데이터(스폰 포인트, 카메라 바운드, 스포너들)를 보관
  • Activate()로 웨이브/존 스포너를 시작
  • Deactivate()로 맵 비활성화

 WaveSpawner & ZoneTriggerSpawner

  • 스폰 로직 담당
  • IsCleared 플래그로 클리어 상태 저장
  • MapManager가 상태를 보고 진행 판단

✅ 핵심 흐름

  1. MapManager에서 첫 맵 활성화
  2. 스포너들이 적 생성
  3. 적이 다 죽으면 IsCleared = true
  4. MapManager가 감지해서 다음 맵으로 전환

 

+) 보완된 사항

최종 구조

 MapManager

맵을 배열 순서대로 차례차례 켜고 끈다.
맵의 진행 상황을 체크해서 다음 맵으로 넘긴다.
플레이어 위치, 카메라 경계, 페이드 처리도 한다.

 

 MapComponent

맵에 필요한 데이터(스폰 포인트, 카메라 바운드, 스포너)만 가진다.
맵을 켜면 해당 스포너를 자동으로 시작한다.

 

 WaveSpawner

웨이브 방식의 적 스폰 처리.
StartWave() 메서드로 첫 웨이브를 시작한다.

 

 ZoneTriggerSpawner

존 방식의 적 스폰 처리.
Zone마다 트리거로 시작하고, 모두 끝나면 클리어된다.

728x90