- 개요
확장된 드롭다운 메뉴 UI에 기능을 추가하여 로그아웃을 수행할 수 있도록 설정한다
- 스크립트 작업
1) DSLocalPlayerSubsystem 클래스


DSLocalPlayerSubsystem 클래스에 GetAuthResult 함수를 추가하여 로그인 성공시에 발급되는 정보를 반환한다
2) AccountDropdown_Expanded 클래스

확장된 드롭다운 메뉴의 위젯 클래스를 생성한다
이전에 생성한 위젯 블루프린트의 부모 클래스를 위 클래스로 교체한다
멤버변수의 구성은 위와 같다
- Button_SignOut 멤버변수 : 로그아웃 버튼
- TextBlock_SignOutButtonText 멤버변수 : 로그아웃 버튼의 텍스트
- HoveredTextColor 멤버변수 : 로그아웃 버튼을 호버링하는 경우의 텍스트 색상
- UnhoveredTextColor 멤버변수 : 로그아웃 버튼을 호버링 해제하는 경우의 텍스트 색상
- PortalManagerClass 멤버변수 : 포탈 중재자 클래스의 서브클래스 타입을 지정
- PortalManager 멤버변스 : PortalManagerClass로 생성된 객체를 지정

SetSignOutButtonStyleTransparent 함수의 로직을 위와 같이 구성하여
로그아웃 버튼을 투명한 클릭 영역으로 설정한다

SignOutButton_OnClicked 함수를 위와 같이 구성한다
Portal 중재자와 DSLocalPlayerSubsystem을 사용하여
로그인 성공 시점에 발급된 정보를 넘겨주어 서버에 로그아웃을 요청한다

SignOutButton_Hover 함수와 SignOutButton_Unhover 함수를 위와 같이 구성하여
버튼의 호버링 여부에 따라 버튼 텍스트의 색상을 변경한다

이벤트 바인딩이나 필요한 데이터를 연동하는 NativeConstruct 함수를 추가하여
Portal 중재자 클래스의 객체를 생성하고
로그아웃 버튼 UI의 클릭 / 호버링 / 호버링 해제에 대한 콜백함수를 바인드한다

UI 컴포넌트를 세팅하는 NativePreConstruct 함수를 추가하여
필요한 함수들을 호출하여 로그아웃 버튼 UI의 투명화 + 로그아웃 버튼의 호버링을 해제한다
3) PortalManager 클래스

SignOut_Response 함수에 로직을 추가하여
서버에서 반환된 로그아웃 처리 결과를 문제없이 직렬화했다면 로그를 남기도록 설정한다
- 블루프린트 작업
1) WBP_Expanded 위젯 블루프린트

위와 같이 부모 클래스를 변경하였다

필요한 멤버변수의 값을 위와 같이 설정하였다

클래스의 멤버변수 이름과 실제 위젯들의 이름을 통일하여 구성하였다
- 최종 실행 결과


위와 같이 로그가 남겨진 것을 확인할 수 있다
'언리얼 엔진 - 게임 프로젝트 > AWS GameLift를 활용한 데디케이트 FPS 프로젝트' 카테고리의 다른 글
| Access Tokens - 11) 리소스 서버 설정 (0) | 2026.06.21 |
|---|---|
| Access Tokens - 10) GetUser API의 사용 (0) | 2026.06.21 |
| Access Tokens - 8) 로그아웃 람다 함수 요청과 처리 설계 (0) | 2026.06.19 |
| Access Tokens - 7) 로그아웃 람다 생성 (0) | 2026.06.19 |
| Access Tokens - 6) 드롭다운 메뉴 (0) | 2026.06.19 |