본문 바로가기

블루프린팅/11. 게임 스테이트

[11.게임스테이트와 마무리] 플레이어 사방으로 위험 현실화

이장의 토픽은

플레이어 상태에 따라 다른 메뉴 표시

게임플레이 모디파이어로 높아가는 난이도 생성

저장되고 나중에 다시 로딩되는 게임 스테이트 지원

저장된 데이터를 기반으로 레벨을 선택해서 초기화 

게임플레이 데이터를 표시하는 전환 화면 생성

 

플레이어 사방으로 위험 현실화

플레어어 체력이 고갈되면 패배화면이 나오고 체력과 탄약을 회복후 다시 시작할 수 있지만 이전 기록은 리셋된다.

 

패배화면 세팅

플레이어 체력이 고갈되면 패배화면이 표시된후, 마지막 라운드를 다시 시작하거나 게임을 종료할 수 있는 옵션을 제공한다. 작성한 승리 화면을 기억할 수도 있다. WinMenu 에셋을 템플릿으로 사용해 개발 시간을 절약할 수 있다.

 

Loss Menu

1. 콘텐츠드러워에서 FirstPerson>UI폴더의 WinMenu를 우클릭 복제 하고 이름을 LossMenu로 변경한다.

2. LossMenu 에셋을 더블클릭해 UMG에디터를 연다. You Win!을 표시하는 텍스트를 선택후 이름을 Loss msg로 변경하고 콘텐츠 텍스트 필드를 You Lose!로 변경하고 컬러및 오파시티를 어두운 붉은색으로 변경한다.

3. 컴파일 저장후 Restart와 Quit 두개의 버튼은 현재로는  WinMenu의 외판이나 기능면에서 동일할 수 있다.

 

패배 화면표시

이제 패배화면이 보일 수 있도록 BP_FirstPersonCharacter 블루프린트를 수정하자

1이벤트그래프 빈곳에 우클릭후 CustomEvent추가후 이름을 LostGame으로 변경

2. LostGame출력핀을 끌어 SetGamePased추가

3. LostGame밑 빈곳에 우클릭후 Get Player Controller추가 ReturnValue 출력핀을 끌어 SET ShowMouseCursor추가 ShowMouseCursor체크

3. SET출력핀을 끌어 Create Widget추가후 Class를 LostMenu선택. LostMenu는 이전에 만든 패배시 나타나는 UI메뉴이다. Create Widget제목이 자동으로 바뀐다.

4. 위젯생성 출력핀을 끌어 Add to Viewport를 추가

5. 다음과 같이 연결한다.

6. 플레이어 체력이 0에 가까운 경우 위에서 만든 LostGame(Custom Event)을 호출하도록 AnyDamager이벤트를 수정한다.

7. 오른쪽 SET출력핀을 끌어 Branch를 추가한다. 아래 빨간색 출력핀을 끌어 Nearly Equal(Float)를 추가한다. Return Value핀을 Branch의 Condition입력핀에 연결한다.

8. Branch노드의 True핀을 끌어LostGame(CustomEvent)를 추가한다.

9. 컴파일 저장후 플레이해본다. 적 옆에서 공격을 받아 Health가 0이 되면 LOST 메뉴가 뜨는지 보자