

▣ 첫 번째 이미지 - 부모 클래스 선택
부모 클래스 선택 화면
All Classes 버튼을 눌러 모든 C++ 클래스를 검색 가능하게 변경.
GameInstanceSubsystem을 선택하여 새로운 서브시스템 클래스를 이 클래스로부터 상속받도록 설정.
Next 버튼을 눌러 진행.
- 이 작업의 목적:
새로운 클래스가 GameInstanceSubsystem을 기반으로 하도록 설정.
GameInstanceSubsystem을 사용하면 게임이 실행되는 동안 계속 유지되는 기능을 추가할 수 있음.
따라서, 온라인 세션을 관리하는 기능을 여기에 구현할 수 있음.
▣ 두 번째 이미지 - C++ 클래스 생성 설정
새로운 C++ 클래스를 만들기 위한 설정 창입니다.
클래스 이름: MultiplaySessionsSubsystem
클래스 유형: Public
모듈 선택: MultiplayerSessions (Runtime)
이 모듈을 선택하면 플러그인 형태로 관리됩니다.
Runtime 모듈을 사용하면, 이 서브시스템을 게임 실행 중에도 접근할 수 있습니다.
파일 경로 확인
Header File (.h) 및 Source File (.cpp)의 저장 경로가 표시됨.
- 이 작업의 목적:
멀티플레이 세션을 관리하는 서브시스템 클래스(MultiplaySessionsSubsystem)를 생성하는 과정.
이 클래스는 게임의 GameInstance와 함께 유지되며, 세션 관련 기능을 처리할 수 있음.

▣ GameInstanceSubsystem
게임이 실행되는 동안 지속적으로 유지되는 서브시스템을 생성하는 데 사용됩니다.
UGameInstanceSubsystem을 상속받아 사용자가 정의한 서브시스템을 만들 수 있습니다.
예를 들어, 온라인 세션 관리, 데이터 저장소 등을 만들 때 유용합니다.
▣ OnlineSessionInterface
언리얼 엔진의 온라인 서브시스템(OnlineSubsystem)에서 제공하는 멀티플레이어 세션 기능을 제어하는 인터페이스입니다.
주로 세션을 생성하고 플레이어를 초대하거나 검색할 때 사용됩니다.
IOnlineSessionPtr을 통해 세션을 관리하고, 이를 통해 멀티플레이어 환경을 구축할 수 있습니다.

▣ 기능 설명
- CreateSession(int32 NumPublicConnections, FString MatchType)
새로운 멀티플레이어 세션을 생성하는 함수입니다.
NumPublicConnections는 허용할 최대 플레이어 수를 지정하며,
MatchType을 통해 게임 모드를 설정할 수 있습니다.
- FindSessions(int32 MaxSearchResults)
최대 MaxSearchResults 개수만큼 온라인 세션을 검색합니다.
검색 결과를 FindSessionsComplete 함수에서 처리합니다.
- JoinSession(const FOnlineSessionSearchResult& SessionResult)
특정 세션에 참가합니다.
참가가 완료되면 JoinSessionComplete 콜백이 호출됩니다.
- DestroySession()
현재 세션을 삭제합니다.
세션이 삭제되면 DestroySessionComplete 콜백이 호출됩니다.
- StartSession()
현재 세션을 시작합니다.
세션 시작이 완료되면 StartSessionComplete 콜백이 호출됩니다


▣ 델리게이트(Delegate)와 콜백 함수
각 기능이 완료되면 콜백 함수가 호출됩니다.
델리게이트는 언리얼 엔진의 이벤트 시스템으로, 비동기 작업이 완료되었을 때 특정 함수를 실행할 수 있습니다.
예를 들어, CreateSessionCompleteDelegate는 세션 생성이 완료되었을 때 OnCreateSessionComplete()를 실행합니다.



▣ 생성자 (UMultiplaySessionsSubsystem())
OnlineSubsystem에서 **온라인 세션 인터페이스(SessionInterface)**를 가져옵니다.
델리게이트(Delegate)를 콜백 함수와 바인딩하여, 이벤트 발생 시 자동으로 함수가 실행되도록 설정합니다.
주요 기능 함수
함수설명
CreateSession(int32 NumPublicConnetions, FString MatchType) | 새로운 온라인 세션을 생성 |
FindSessions(int32 MaxSearchResults) | 온라인 세션 검색 |
JoinSession(const FOnlineSessionSearchResult& SessionResult) | 검색된 세션에 참가 |
DestorySession() | 현재 세션을 삭제 |
StartSession() | 세션을 시작 |
▣ 콜백 함수
각 작업이 완료되면 해당 콜백 함수가 실행됩니다.
예를 들어, CreateSession()이 성공하면 OnCreateSessionComplete()가 호출됩니다.
언리얼 엔진의 OnlineSubsystem은 비동기 방식으로 동작하기 때문에, 완료 이벤트를 받아 처리하는 방식을 사용합니다.
'[ Unreal5 ] > - 언리얼엔진5 멀티' 카테고리의 다른 글
언리얼엔진5 Menu Subsystem Add (2) | 2025.03.04 |
---|---|
언리얼엔진5 Menu Class Setup (0) | 2025.03.03 |
언리얼엔진5 Multiplay Plugin Create (0) | 2025.02.19 |
언리얼엔진5 Session Join (0) | 2025.02.18 |
언리얼엔진5 Session Join Setup (0) | 2025.02.15 |
댓글