- 개요
게임 씬의 이동 방식을 변경하여 게임을 클리어한 후에 플레이어가 선택하여 다음 씬으로 이동한다
또, 몇 가지 수정 사항을 적용하여 게임을 개선한다
- 스크립트 작업
1) 게임 씬 이동 방식 변경 관련 스크립트
1 - 1) GameEvents 클래스


다음 씬이 시작되기 위해 실행할 OnNextLevelStarted 이벤트를 추가한다
또, 해당 이벤트를 실행하기 위한 Raise 함수도 추가한다
1 - 2) GameSceneManager 클래스

OnEnable 함수와 OnDisable 함수에 위와 같이 로직을 추가하여
새로 추가한 OnNextLevelStarted 이벤트에 멤버 함수를 연결한다

HandleStartNextScene 함수를 추가하고 호출하여 현재 게임의 다음 게임 씬으로 이동할 수 있도록 설정한다

HandleStageCleared 함수에 위와 같이 로직을 추가하여
모든 게임이 완료된 경우가 아니라면 레벨 클리어 UI를 활성화하여 플레이어가 선택할 수 있도록 설정한다
1 - 3) UI_InGame 클래스

인게임 UI 클래스에 레벨 클리어 UI를 멤버변수로 추가한다

EnableLevelClearUI 함수를 호출하여 레벨 클리어 UI를 활성화한다
1 - 4) UI_LevelCompleted 클래스

레벨 클리어 UI를 추가하고 위와 같이 멤버변수와 OnEnable 함수를 추가한다
레벨 클리어 UI가 활성화되면 해당 게임동안 처치한 적의 총합을 화면에 표시한다

하위 버튼 UI의 onClick 이벤트에 바인드할 2개의 함수를 생성한다
NextLevelButtonClicked 함수를 호출하여 다음 게임 씬으로 전환하고
MainMenuButtonClicked 함수를 호출하여 메인 메뉴 씬으로 전환한다
1 - 5) EnemySpawner 클래스

totalEliminatedEnemyCount 멤버변수를 추가하여 처치된 적의 총합을 기록한다

RemoveActiveEnemy 함수에 로직을 추가하여 제거된 적을 기록한다

Getter 함수를 추가하여 처치된 적의 총합을 반환한다
2) 추가 수정 관련 스크립트
2 - 1) CameraEffect 클래스

플레이어가 피해를 받게 되는 경우 카메라의 시점을 플레이어의 본진으로 전환하는 멤버변수들을 추가한다

OnEnable 함수와 OnDisable 함수에 로직을 추가하여
피해를 입는 상황의 이벤트가 발동되면 필요한 멤버함수를 호출하도록 구성한다

CoEnableCameraControllsAfter 함수를 추가하여 딜레이 후에 카메라를 다시 조작할 수 있도록 설정한다

카메라의 시점을 변환하는 함수들에 CoEnableCameraControllsAfter 함수를 추가한다

SwitchCameraFocusOnCastle 함수를 추가하여 카메라의 시점을 플레이어의 본진으로 전환한다

HandleDamaged 함수를 피해를 입은 상황의 이벤트에 바인딩하여 카메라의 시점을 전환한다
2 - 2) Enemy_Base 클래스

TryRecoverOnNavMesh 함수를 추가하여
적이 NavMesh 영역을 벗어나면 가장 가까운 NavMesh 영역으로 강제 이동시키도록 구성한다

GetDistanceToEndPoint 함수를 수정하여
NavMeshAgent가 유효하지 않다면 totalDistance를 사용하도록 방어 코드를 추가한다

SetNextDestination 함수에 로직을 추가하여 적이 NavMesh 영역을 벗어난 상황을 방어한다

Update 함수에서도 동일하게 방어 코드를 추가한다
- 최종 실행 결과

'유니티 엔진 - 게임 프로젝트 > 타워 디펜스 게임' 카테고리의 다른 글
| 오디오 - 최종) 유닛의 공격 효과음 추가 + 설정 UI와 오디오 연결 (0) | 2026.09.17 |
|---|---|
| 오디오 - 1) 배경 음악과 인게임 UI의 음악 효과 (0) | 2026.09.15 |
| 레벨 관리 - 6) 게임 클리어와 레벨 잠금 해제 (0) | 2026.09.08 |
| 레벨 관리 - 5) 게임 패배 처리와 레벨 선택 준비 (0) | 2026.09.08 |
| 레벨 관리 - 4) 인게임 씬간의 전환과 씬 재시작 (0) | 2026.09.07 |