Make Unreal REAL.
article thumbnail
Unreal Engine 5 C++ Multiplayer Shooter

 

세션 참가도 생성, 검색과 똑같이 델리게이트를 통해 진행한다.

 

 

세션 생성 시 매치 종류를 설정하도록 한다.

  • 아래에서는 FreeForAll이라는 문자열로 설정되었고, Steam 온라인 서비스와 핑을 통해 홍보된다.
  • 이 문자열을 통해 세션 검색 시 원하는 매치를 필터링할 수 있다.

 

 

세션 생성에 성공했으면 호스팅할 플레이어는 Lobby 레벨을 Listen 서버로 연다.

 

 

세션 생성 시 FOnlineSessionSettings 객체로 설정했던 값들을 FOnlineSessionSearchResult.Session.SessionSettings를 통해 다시 가져올 수 있다.

  • 아까 설정했던 매치 종류를 통해 필터링한다.

 

매치 종류가 FreeForAll인 첫 번째 세션을 찾았으면, 델리게이트 리스트에 델리게이트를 등록하고 세션에 참가한다.

  • Unique ID, 세션 이름, 참가할 세션을 갖고 있는 FOnlineSessionSearchResult 객체를 전달한다.

 

 

세션 참가에 성공했으면 호스팅하고 있는 IP 주소를 얻어와 레벨로 이동한다.

  • IOnlineSessionPtr->GetResolvedConnectString() 함수에 세션 이름을 전달하면, 방금 참가한 세션의 주소를 Address에 저장한다.

 

 

현재 BP는 다음과 같다.

 

 

패키징 후 한 컴퓨터에서 1번 키를 눌러 세션을 생성하고 Lobby 레벨을 Listen 서버로 연 후, 다른 컴퓨터에서 2번 키를 눌러 세션에 참가하고 IP 주소에서 호스팅 중인 레벨로 이동한다.

 

IOnlineSessionPtr->GetResolvedConnectString() 함수에서 얻어온 주소는 다음과 같은 형식을 갖는다.

  • steam.난수:포트

 

profile

Make Unreal REAL.

@diesuki4

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그