점수는 어디인가 저장되고 계산되어야 합니다.
게임 전반의 관리를 GameModeBase에서 실행합니다.
이전에 만들었던 GM_Shooting을 엽니다.
Integer로 CurrentScore 변수를 만들고
AddScore라는 함수를 만들고 Inputs+를 눌러 Integer Type의 Point입력을 만들어 줍니다.
다음과 같이 함수를 만들어 줍니다.
AddScore를 사용해야할 곳은 적과의 충돌을 관리하는 BP_Bullet입니다.
BP_Bullet을 열어 Event ActorBeginOverlap 노드 뒤에 addScore함수를 추가합니다. 이 함수는 GM_Shooting의 메소드이므로 캐스트해서 사용합니다.
widget_blueprint를 하나 만들고 이름을 WBP_Main으로 합니다.
Cavas를 추가하고 해상도를 1920x1080으로 변경합니다.
HorizontalBox를 추가하고 자식으로 텍스트를 2개 추가합니다.
ScoreData를 선택하고 디테일에서 CreteBinding 해줍니다.
함수 에디트창이 열리면 다음과 같이 노드를 추가해 줍니다.
이제 위젯을 만들었으나 표시를 해주어야 합니다.
GameMode에서 해보겠습니다. GM_Shooting을 열고
CreateWidget를 추가하고 WBP_Main을 지정합니다. Add to Viewport노드로 화면에 추가됩니다.
내침김에 플레이모드로 자동 전환되고 마우스커서도 없애주겠습니다. 이 두 함수는 playerController에서 찾아야 합니다.
게임 종료 위젯을 만들어 봅니다.
WBP_GameOver로 이름짓고
플레이어가 죽는걸 감지하는 BP_Enemy 블루프린트에서 불러보겠습니다.
EventActor Overlap뒤에 CrateWidget을 추가해줍니다.
마우스 입력을 받기위해 Show Mouse Cursor 노드도 추가해주고 게임을 포즈시켜줍니다.
플레이어가 적과 부딪치면 UI가 나옵니다
이제 Restart, Quit버튼의 인터액션을 구현해 봅니다.
WBP_GameOver를 열고 Button_Restart를 선택하고 Detail에서 IsValiable을 선택 아래 Events의 OnClicked옆 +를 클릭합니다
EventGraph가 열리면 OpenLevel(ByName)을 추가하고 레벨 이름을 정확히 추가합니다.
우상 Designer를 눌러
Button_Quit를 선택하고 IsVariable체크후 아래 OnClicked 옆 +를 눌러서
QuitGame을 연결해줍니다.
실행해서 적과 부딪치면 위젯이 잘 나오는데 마우스를 한번 클릭해야 포커스가 잡혀서
BP_Enemy에 Set Input Mouse UI Only를 추가했더니 잘되었다.
'게임프로젝트 > 슈팅게임' 카테고리의 다른 글
베타타입 버전 Shooting Game (0) | 2025.03.10 |
---|---|
알파 버전 스태틱메시 교체 (0) | 2025.03.10 |
배경 만들기 (0) | 2025.03.10 |
충돌처리 Collision (0) | 2025.03.10 |
Enemy, Factory 제작하기 (0) | 2025.03.10 |