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

Access Tokens - 2) LocalPlayerSubsystem 클래스

monstro 2026. 6. 14. 16:12
728x90
반응형

- 개요

언리얼 엔진의 Subsystem은 생성된 이후 제거하기 힘든 싱글톤 패턴의 단점을 개선한 요소이다

언리얼 엔진의 복잡한 생명주기와 관련된 문제를 해결하고자

Subsystem은 주 요소에 종속되어 관리되며 주 요소의 생명주기에 맞춰 관리된다

주 요소를 통해 쉽게 생성하고, 쉽게 가져오고, 쉽게 관리할 수 있다는 장점을 갖고 있다

위와 같은 Subsystem 중에서 LocalPlayerSusbsytem은 특정 LocalPlayer에 의해 종속된다

따라서 LocalPlayerSubsystem을 사용하여 각각의 플레이어마다의 인증 정보를 관리하도록 설정한다

 

- 스크립트 작업

1) DSLocalPlayerSubsystem 클래스

 

프로젝트에서 사용할 DSLocalPlayerSubsystem 클래스를 위와 같이 생성한다

AuthenticationResult 멤버변수를 사용하여 로그인 성공시에 발급되는 토큰 세트인증 결과를 저장한다

또, PortalManager 멤버변수를 사용하여 Portal 중재자 클래스와 통신한다

 

 

InitializeTokens 함수를 위와 같이 구성하여

해당 함수를 호출함으로써 인자로 받은 값을 사용하여 2개의 멤버변수의 값을 설정한다

 

2) HTTPRequestManager 클래스

 

GetDSLocalPlayerSubsystem 함수를 추가하여 DSLocalPlayerSubsystem을 반환한다

 

 

GetDSLocalPlayerSubsystem 함수의 로직을 위와 같이 구성한다

월드를 통해 첫 번째 PlayerController를 가져오고 다시 Player를 가져와 캐스팅하여 LocalPlayer로 변환한다

변환한 LocalPlayer로부터 GetSubsystem 함수를 호출하여 DSLocalPlayerSubsystem을 반환한다

 

3) PortalManager 클래스

 

SignIn_Response 함수에 위와 같이 로직을 추가한다

서버로부터 반환된 SiginIn API의 처리 결과 리플렉션을 통해 구조체로 변환한 후에

DSLocalPlayerSusbsystem을 가져와 InitializeTokens 함수를 호출하고 변환한 구조체를 인자로 넘겨준다

728x90
반응형