게임 모드 - 2) 배틀로얄 구현
- 개요
최후의 한명의 플레이어만 남는 배틀로얄 모드를 구현한다
- 스크립트 작업
1) LobbyManager 클래스

배틀로얄 게임이 진행될 Lobby의 이름을 설정한다
2) UI_KillCountPanel 클래스

NoRespawnWinner 함수를 추가하여 배틀로얄 게임에서의 승자를 표시한다
3) UI_NickName 클래스

배틀로얄 게임모드와 관련된 멤버변수를 추가한다
- noRespawnMode 멤버변수 : 해당 게임이 배틀로얄 모드인지 판별
- eliminationPanel 멤버변수 : 배틀로얄 게임에서 쓰러진 플레이어에게 보여줄 UI

Start 함수에 로직을 추가하여 배틀로얄 게임에서의 UI를 비활성화한다
4) UI_Timer 클래스

Update 함수에 위와 같이 조건을 추가하여 배틀로얄 게임이 아닌 다른 모드에서만 타이머를 적용한다

UpdateUI 함수를 수정하여 배틀로얄 게임이 아닌 다른 모드에서만 타이머를 갱신한다
5) DisplayColor 클래스

canRespawn 멤버변수를 추가하여 부활할 수 있는 게임모드인지 판단한다

Start 함수에 로직을 추가하여 게임 모드를 읽어와 canRespawn 멤버변수의 값을 설정한다
설정한 값을 다시 PlayerController의 noRespawn의 값으로 설정한다

NoRespawnExit 함수를 추가한다
배틀로얄 게임모드에서 플레이어가 쓰러지면 해당 함수를 호출한다
내부적으로 UI를 활성화하고 WaitToExit 코루틴 함수를 호출한다
WaitToExit 코루틴 함수는 3초 후에 쓰러진 플레이어를 퇴장시킨다
6) PlayerController 클래스

배틀로얄 게임모드에 필요한 멤버변수를 추가한다
- killCountPanel 멤버변수 : NoRespawnWinner 함수를 호출하는 용도
- startChecking 멤버변수 : 최종 승자를 체크하는 용도
- noRespawn 멤버변수 : 현재 게임이 배틀로얄 게임인지 확인

Start 함수에 로직을 추가하여 killCountPanel 멤버변수의 값을 설정한다

Update 함수를 위와 같이 수정한다
배틀로얄 게임모드가 아닌 경우에만 쓰러진 플레이어를 부활시킨다
배틀로얄 게임모드라면 플레이어가 쓰러진 후에 DisplayColor 컴포넌트의 NoRespawnExit 함수를 호출한다
현재 Room의 플레이어가 2명 이상이면 3초 간격으로 CheckForWinner 함수를 호출한다

CheckForWinner 함수의 로직은 위와 같이 구성하여
NoRespawnWinner 함수에 현재 Room에 남아있는 마지막 플레이어의 이름을 인자로 넘겨준다
- 최종 실행 결과
