언리얼 엔진 - 게임 프로젝트/AWS GameLift를 활용한 데디케이트 FPS 프로젝트

API Gateway - 4) API Gateway 테스트용 위젯 생성

monstro 2026. 5. 14. 16:56
728x90
반응형

- 개요

클라이언트의 입력을 받아 언리얼 엔진으로부터 서버요청을 보내

AWS GameLift에서 제공하는 서비스를 수행하기 위한 테스트용 위젯을 생성한다

테스트할 API는 List Fleets 명령어 사용자의 특정 리전에 생성된 모든 게임 서버 플릿의 ID 목록을 반환한다

 

- C++ 사이드

1) DedicatedServers 모듈 관련

1 - 1) FleetId 클래스

 

반환된 서버 플릿의 ID를 표현할 하나의 역할을 하는 UFleetId 클래스를 생성한다

TextBlock 멤버변수를 사용하여 서버 플릿의 ID를 표현하고

이때 "meta = (BindWidget)" 속성을 사용하여 코드의 변수와 에디터에서 만든 실제 위젯과 연결한다

 

1 - 2) ListFleetsBox 클래스

 

플레이어로부터 입력을 받아 ListFleets 명령어를 실행하도록 요청하고

또, 반환된 서버 플릿의 ID의 목록을 표현할 ListFleetsBox 클래스를 생성한다

ScrollBox 멤버변수를 사용하여 반환된 서버 플릿의 ID 목록을 표현하고

Button 멤버변수를 사용하여 API의 실행을 요청한다

동일하게 "meta = (BindWidget)" 속성을 사용하여 변수와 실제 위젯을 연결한다

 

1 - 3) APITestOverlay 클래스

 

테스트용 위젯들을 전부 포함하는 위젯 APITestOverlay 클래스를 생성한다

 

1 - 4) APITestHUD 클래스

 

UI의 전반적인 상태를 관리하는 컨테이너 역할의 APITestHUD 클래스를 생성한다

멤버변수는 위와 같다

  • APITestOverlayClass 멤버변수 : APITestOverlay 클래스의 서브 클래스의 타입을 지정
  • APITestOverlay 멤버변수 : APITestOverlayClass 변수를 기반으로 생성될 객체를 참조

 

 

BeginPlay 함수를 위와 같이 오버라이드한다

부모 버전의 함수를 호출하고 로컬의 PlayerController를 가져온다

이후 PlayerControllerAPITestOverlayClass 변수가 유효한지 확인하고

해당 변수를 기반으로 위젯을 생성한 후에 뷰포트에 추가한다

 

- 애셋 사이드

1) WBP_FleetID 위젯 블루프린트

 

위와 같이 계층을 구성하여 위젯 블루프린트를 생성한다

이때 계층을 구성하는 TextBlock 위젯의 이름을 코드의 변수 이름과 통일한다

 

2) WBP_ListFleets 위젯 블루프린트

 

위와 같이 계층을 구성하여 위젯 블루프린트를 생성한다

동일하게 계층의 위젯 이름을 코드의 변수 이름과 통일한다

 

3) WBP_APITestOverlay 위젯 블루프린트

 

위와 같이 계층을 구성하여 위젯 블루프린트를 생성한다

테스트 용도로 구성하여 위와 같이 위젯을 하나만 추가하였다

 

4) BP_APITestHUD 블루프린트

 

APITestOverlayClass 변수의 값3)에서 생성한 위젯 블루프린트로 설정한다

 

5) 로그인 화면 세팅

 

기본 시작 레벨을 로그인 화면으로 변경하고 GameModeHUD 클래스를 위와 같이 변경한다

 

- 최종 실행 결과

728x90
반응형