[기능 설명]
일시정지 메뉴
- 플레이 중 일시정지 메뉴를 호출할 수 있습니다.
- 돌아가기로 일시정지 메뉴를 닫을 수 있습니다.
- 설정을 눌러 설정 메뉴로 접근할 수 있습니다.
- 종료하기를 누르면 게임을 종료합니다.
[기능 미리보기]
[알고리즘]
1. 일시정지 메뉴 위젯 생성
'widget_PauseMenu'를 생성합니다.
위와 같이 배치합니다.
Border의 Brush Color 값을 0.0, 0.0, 0.0, 0.5로 설정합니다.
앵커를 화면 전체로 설정합니다.
버튼의 외관을 취향껏 설정합니다.
변수인지를 체크합니다.
개입 - IsFocusable을 체크 해제합니다.
복사로 ResumeButton, SettingButton, QuitButton 세 가지 버튼을 동일하게 설정합니다.
버튼 안의 텍스트는 각각 '돌아가기', '설정', '종료하기'입니다.
위젯 배치를 마쳤다면, 그래프로 이동합니다.
위와 같이 배치합니다.
위젯이 생성되면, 마우스 중앙 고정을 비활성화하고, 설정 위젯을 생성합니다.
게임 인스턴스의 마스터 볼륨 값과 마우스 감도를 불러와 설정 위젯의 슬라이더 값에 저장합니다.
마우스 커서를 화면에 표시하고, UI와 상호작용 할 수 있도록 설정합니다.
돌아가기 버튼을 누르면, 마우스를 게임과 상호작용 하도록 설정하고, 커서를 숨기고, 화면 중앙에 고정시키고, PauseMenu 위젯을 제거하고 일시정지를 해제합니다.
종료하기 버튼을 누르면, Quit Game 함수에 의해 게임을 종료합니다.
설정 버튼을 누르면, Construct 이벤트에서 생성한 Setting 위젯을 화면에 표시합니다.
해당 위젯에서 생성한 'Widget Pause Setting'은 인트로 맵의 설정 메뉴 위젯과 동일하게 동작합니다.
2. 위젯 생성 및 호출
이번에는 레벨 별로 위젯을 따로 생성하지 않고, 클래스 블루프린트 하나에서 생성하는 방식을 소개하겠습니다.
FirstPersonCharacter 클래스 블루프린트로 이동합니다.
위와 같이 배치합니다.
ESC나 Tab을 눌렀을 때, 인트로맵인지 아닌지 체크합니다.
인트로맵이 아니라면, 일시정지 위젯을 생성하고 화면에 추가한 뒤 게임을 Paused 합니다.
레벨마다 FristPersonCharacter이 존재한다면, 이렇게 배치하여 위젯을 생성 및 호출할 수 있습니다.
'Portfolio > Unreal 4' 카테고리의 다른 글
[살인마 웅] 개발 취소사항(이스터에그, 난이도 설계) (0) | 2023.07.27 |
---|---|
[살인마 웅] 시각적 힌트 추가하기 (0) | 2023.07.21 |
[살인마 웅] 마스터 볼륨과 오디오 적용 (0) | 2023.07.19 |
[살인마 웅] 설정 UI와 마우스 감도 (0) | 2023.07.17 |
[살인마 웅] 인트로 구현(스페이스, 프롤로그) (0) | 2023.07.16 |