在插件打开Online Subsystem Steam
在Build.cs添加模块
"OnlineSubsystemSteam","OnlineSubsystem"
打开项目文件下的Config,修改Engine.ini
https://docs.unrealengine.com/4.26/en-US/ProgrammingAndScripting/Online/Steam/
[/Script/Engine.GameEngine] +NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver") [OnlineSubsystem] DefaultPlatformService=Steam [OnlineSubsystemSteam] bEnabled=true SteamDevAppId=480 [/Script/OnlineSubsystemSteam.SteamNetDriver] NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"
修改完后回到项目目录下删除Saved,Intermediate,Binaries文件夹并且在.uproject重新生成项目
添加代码在Character的.h和.cpp内
.h
public: //Pointer to the online session interface void _MyDebugLog(int32 Key, float TimeToDisplay, FColor DisplayColor, const FString& DebugMessage); TSharedPtr<class IOnlineSession,ESPMode::ThreadSafe>OnlineSessionInterface;
.cpp
//添加访问Steam会话系统 IOnlineSubsystem* OnlineSubsystem = IOnlineSubsystem::Get(); if(OnlineSubsystem) { //获得当前会话的指针 OnlineSessionInterface = OnlineSubsystem->GetSessionInterface(); _MyDebugLog(-1,15.f,FColor::Blue,FString::Printf(TEXT("Now Subsystem %s"),*OnlineSubsystem->GetSubsystemName().ToString())); }
void AMenuCharacter::_MyDebugLog(int32 Key, float TimeToDisplay, FColor DisplayColor, const FString& DebugMessage) { if(GEngine) { GEngine->AddOnScreenDebugMessage(Key,TimeToDisplay,DisplayColor,DebugMessage); } }
在普通模式,我们链接的是UE的本地Subsystem Null
选择已独立游戏模式启动,我们就可以链接上steam