Contents
접기
728x90
목표 시나리오
- 게임 시작 시:
- 검은 화면 → FadeIn → 첫 맵 등장
- 맵 이동 시:
- FadeOut → 기존 맵 Deactivate
- 맵 교체 → FadeIn
- 모든 맵 클리어 시:
- FadeOut → 엔딩 처리 (씬 전환 or UI)
구조 확인
MapManager.cs 주요 흐름 정리
// 플레이어 생성 및 첫 맵 전환
private void Start()
{
// playerInstance = 생성 또는 찾기
// StartCoroutine(TransitionToNextMap());
}
// 외부에서 다음 맵 호출
public void GoToNextMap()
{
StartCoroutine(TransitionToNextMap());
}
// 맵 전환의 핵심 루틴
private IEnumerator TransitionToNextMap()
{
// 1. FadeOut
// 2. 기존 맵 Deactivate
// 3. currentIndex++
// 4. 새로운 맵 Activate
// 5. FadeIn
}
필요한 구조 확장
1. 초기 진입용 FadeIn 처리
현재는 Start()에서 바로 TransitionToNextMap()을 실행해서, 시작 화면이 깜빡이거나 부자연스럽게 될 수 있음
해결 방안:
- Start()를 IEnumerator로 바꾸고,
- 검은 화면 유지 → FadeIn → TransitionToNextMap 흐름으로 수정
TransitionToNextMap 내부 흐름 정리
TransitionToNextMap()
{
1. FadeOut (화면 어두워짐)
2. 이전 맵 Deactivate
3. currentIndex++
4. 다음 맵 Activate + 플레이어 위치 이동 + 카메라 설정
5. FadeIn (화면 밝아짐)
}
모든 맵 끝났을 때 FadeOut 처리
- 기존에는 그냥 "모든 맵 클리어!" 로그만 있음
- 여기에 FadeOut과 결과 처리를 넣을 수 있음
구조 흐름 다이어그램
[시작]
MapManager.Start() →
└─> FadeController.SetBlack() ← 검은 화면 유지
└─> FadeController.FadeIn() ← 서서히 밝아짐
└─> TransitionToNextMap()
TransitionToNextMap():
├─> FadeOut() ← 현재 화면 어두워짐
├─> maps[currentIndex].Deactivate()
├─> currentIndex++
├─> maps[currentIndex].Activate()
├─> 카메라 & 플레이어 위치 이동
└─> FadeIn() ← 다음 맵 밝아짐
└─> 마지막 맵이면:
└─> FadeOut()
└─> 결과 화면 UI or 씬 전환
728x90
'GameDevelop > Unity팀프로젝트' 카테고리의 다른 글
Unity 타일맵 구조 정리 & 작업 일지 (Middle4 타일맵 구성) (0) | 2025.07.11 |
---|---|
Unity 트러블슈팅: 두번째 맵에서 포탈이 작동하지 않는오류 & 플레이어 처음 두번 스폰되는 문제 (1) | 2025.07.09 |
[Unity 트러블슈팅] Wave/ZoneSpawner에서 Update 중복 호출로 인한 맵 클리어 문제 해결 (0) | 2025.07.07 |
유니티 로그라이크 맵 관리 시스템 제작 (0) | 2025.07.04 |
Unity 2D 게임 개발일지 – 카메라 전환 & 맵 이동 + 트러블슈팅 (1) | 2025.07.03 |