UE5로 프로젝트 이전
최근 Epic에서 UE5를 정식 출시하면서 UE4에 대한 지원이 끊어진 상황이다. 하지만 아직까지 UE4와의 극명한 차이점은 느끼지 못하였지만 점점 UE5의 업데이트가 시작되어가고 있기에 UE5에 온라인 시스템을 이식시키려고 한다.
플러그인 이식
이전 포스팅까지 사용했던 UE4 플러그인 폴더이다. 새로운 UE5 프로젝트에 복사해준다.
다음으로 편집->플러그인->Online Subsystem Steam을 활성화 해준다.
다음으로 이전 포스팅에서 했던 것처럼 DefaultEngine.ini와 DefaultGame.ini을 수정한다.
DefaultEngine.ini 수정
MultiPlayerGame) 4. 스팀연결
스팀연결 1.온라인 서브시스템 활성화 플러그인->온라인 서브시스템 스팀 활성화->UE재시작 2.코드수정 build.cs에 "OnlineSubsystem","OnlineSubsystemSteam"추가 PublicDependencyModuleNames.AddRange(new str..
pjnull.tistory.com
[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
[OnlineSubsystem]
DefaultPlatformService=Steam
[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480
bInitServerOnClient=true
[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"
//추가
DefaultGame.ini 수정
MultiPlayerGame) 14. 플레이어 추적을 위한 게임모드/게임스테이트
GameMode/GameState GameMode GameMode는 게임의 모든 룰을 유지하기 위해 존재한다. 플레이어가 레벨을 이동하는것과 스폰하는 위치와 같은 것을 관리하는것과 같은 것들이 포함되어 있다. PostLogin을 이용
pjnull.tistory.com
//DeafaultGame.ini
[/Script/Engine.GameSession]
MaxPlayers=100
//추가
레벨블루프린트 설정
다음으로 레벨 블루프린트를 설정해준다.
※주의UE5는 UE4와 다르게 블루프린트 창이 직관적이지 않다.
위젯을 생성하고 메뉴를 세팅해준다.
코드수정
UE5에 넘어오면서 코드에서 몇가지 변경해야될 것들이 있다.
//MultiplayerSessionSubsystem.cpp
void UMultiplayerSessionSubsystem::CreateSession(int32 NumPublicConnections, FString MatchType)
{
LastSessionSettings->bUseLobbiesIfAvailable=true;
//추가
}
※지금 포스팅에서는 플러그인만 이식시켜서 없지만 전에 만들어 두었던 게임모드에서도 변경점이 있다. UE4->UE5를 사용할시 참고
//LobbyGameMode.cpp
void ALobbyGameMode::PostLogin(APlayerController* NewPlayer)
{
Super::PostLogin(NewPlayer);
if (GameState)
{
//UE4에서의 GameState
int32 NumberOfPlayers= GameState->PlayerArray.Num();
->수정
int32 NumberOfPlayers= GameState.Get()->PlayerArray.Num();
//UE5에서의 GameState는 TObjectPtr이다
}
}
'UE5 > UE5 MultiPlayerGame' 카테고리의 다른 글
MultiPlayerGame) 17. SeamLess Travel / Non-SeamLess Travel (0) | 2022.06.16 |
---|---|
MultiPlayerGame) 16. 애니메이션 리타겟팅 (0) | 2022.06.16 |
MultiPlayerGame) 14. 플레이어 추적을 위한 게임모드/게임스테이트 (0) | 2022.06.14 |
MultiPlayerGame) 13. 서브시스템 콜백함수 (0) | 2022.06.14 |
MultiPlayerGame) 12. 세션 만들기 (0) | 2022.06.13 |
댓글