728x90
반응형
안녕하세요. mane입니다.
OnlineSubsystem과 SessionInterface를 가져오기
1. Character.h , Character.cpp를 열어준다.
- IDE에서 Character.h, Character.cpp 열어준다. 굳이 화면을 2분할로 코드를 나누지 않아도 된다.
- 에디터는 종료한다.
2. BeginPlay() , GetOnlineSubsystem(), IOnlineSessionPtr 추가
- .h 에 virtual void BeginPlay() override; 선언 후 .cpp에 다음과 같이 정의해준다.
.h
virtual void BeginPlay() override;
.cpp
void AProjectCharacter::BeginPlay()
{
Super::BeginPlay();
}
- void GetOnlineSubsystem(); 함수 작성 후 BeginPlay 밑에 정의 내려 준다.
- IOnlineSessionPtr OnlineSessionInterface; 선언 - 헤더를 include 시켜줘야 한다.
#include "Interfaces/OnlineSessionInterface.h"
3. 함수 내용 작성
- BeginPlay()
- GetOnlineSubsystem()
- 함수 작성 후 컴파일 (에디터는 종료.)
#include "OnlineSubsystem.h" // 해당 헤더 include
void AOSSPluginCharacter::BeginPlay()
{
Super::BeginPlay();
GetOnlineSubsystem();
}
void AOSSPluginCharacter::GetOnlineSubsystem()
{
// OnlineSubsystem 받아오기
IOnlineSubsystem* OnlineSubsystem = IOnlineSubsystem::Get();
if(OnlineSubsystem)
{
// OnlineSubsystem Interface 받아오기
OnlineSessionInterface = OnlineSubsystem->GetSessionInterface();
// OnlineSubsystem 이름 출력
if(GEngine)
{
GEngine->AddOnScreenDebugMessage(
-1,
15.f,
FColor::Orange,
FString::Printf(TEXT("Subsystem 이름 : %s"),*OnlineSubsystem->GetSubsystemName().ToString()));
}
}
}
4. 에디터에서 확인하기
- 에디터를 실행 후 플레이를 누르면 Subsystem 이름 : NULL 이 나오는 것을 확인할 수 있다.
- 그렇다면 우선 정상적으로 컴파일됐다는 뜻이다.
- 플레이를 멈추고 스팀을 실행해준다.
- 그리고 플랫폼(Platforms)에 점 3개를 눌러서 독립형(Standalone Game)으로 실행해준다.
- 그럼 다음과 같이 정상적으로 Subsystem 이름 : Steam 메시지가 출력되는걸 확인할 수 있다.
- 스팀 오버레이도 잘 켜진다.
728x90
반응형
'언리얼 엔진 > Online Subsystem Steam C++' 카테고리의 다른 글
언리얼엔진 5 C++ 온라인 서브시스템 스팀 - Create Session (0) | 2022.05.03 |
---|---|
언리얼엔진 5 C++ 온라인 서브시스템 스팀 - Setup (0) | 2022.05.01 |
언리얼엔진 C++ OnlineSubsystem Interface 얻어오기 (0) | 2022.04.06 |