메인메뉴에 세이브와 로드 시스템까지 엮여있어 한번에 하려 했으나 세이브 로드 시스템이 생각보다 복잡하고 적용해야하는 것들이 많아서 따로 분리하였다.
먼저 메인메뉴와 게임내에서 일시정지창을 구현할 것이다.
간단히 메인메뉴 창을 디자인하였다.
로드게임은 아직 구현하지 않았고 나머지는 위와같이 구성하였다.
뉴게임 버튼은 Open Level로 캐릭터 컨트롤러를 받아서 실행하도록 하였다.
Quit 버튼은 Quit Game 함수로 간단히 구현할 수 있다.
Settings 버튼은 누르면 화면에서 위젯을 제거 후 Settings 위젯을 Add to Viewport하도록 하였다.
다음은 게임내에서의 일시정지 위젯이다.
ESC를 누르면 동작하도록 할당하였다.
Resume 버튼은 누르면 다시 게임으로 돌아가야 하므로 게임 Paused를 하지 않도록 설정한다.
Quit을 누를시 Main Menu와 Desktop 두 가지 버튼이 나타나도록 하였다.
Main Menu는 다시 메인메뉴 레벨로 돌아가도록 하였다.
Desktop은 게임을 종료하도록 하였다.
메인메뉴 위젯과 마찬가지로 Settins은 Settings 위젯을 Add to Viewport하도록 하였다.
Settings 위젯을 간단히 디자인하였다.
Back 버튼을 누를시 위젯을 제거 후 메인메뉴 위젯을 불러오도록 하였다.
Resolution 버튼은 Resolution Box를 나타나도록 하고 나머지 Shadows Box와 Texture Box는 보이지 않도록 하였다.
위 Resolution 버튼과 마찬가지로 Shadow 버튼과 Texture 버튼도 누르면 보이도록하고 나머지 2개는 숨기도록 하였다.
Excute Console Command 함수로 버튼을 누를시 각 명령을 실행하도록 한다.
TextureQuaility와 ShadowQuality는 0일수록 낮고 높아질수록 품질이 올라간다.
메인메뉴 레벨은 빈 공간으로 할당하였다.
위와 같이 잘 동작하는 것을 볼 수 있다.
'언리얼 - 게임 개발' 카테고리의 다른 글
첫 게임 개발 (27) _ 세이브 로드 시스템 구현하기 2 (0) | 2024.08.18 |
---|---|
첫 게임 개발 (26) _ 세이브 로드 시스템 구현하기 1 (0) | 2024.08.15 |
첫 게임 개발 (24) _ 레벨 이동 (0) | 2024.08.10 |
첫 게임 개발 (23) _ 간단한 대화 구현 (0) | 2024.08.10 |
첫 게임 개발 (22) _ 타일 맵으로 맵 및 미니맵 만들기 (0) | 2024.08.10 |