福鼎网站建设培训在建设官网的公司做运营
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
 - 一、理解 Online Subsystem 的核心概念
 - 1.1 什么是 Online Subsystem?
 - 1.2 支持的平台服务
 
- 二、环境配置与基础设置
 - 2.1 启用 Online Subsystem
 
- 三、 基础功能实现(C++/蓝图)
 - 3.1 玩家登录(Identity)
 - 3.2 创建/加入会话(Session)
 
- 四、 本地测试与调试
 - 4.1 使用 Null 子系统测试
 - 4.2 日志查看
 
- 五、进阶功能
 - 5.1 好友与邀请
 - 5.2 成就系统
 
- 官方链接[Online Subsystem](https://docs.unrealengine.com/5.3/en-US/online-subsystem-in-unreal-engine/)
 
前言
它是虚幻引擎中管理在线功能的核心框架,支持多种后端服务(如EOS、Steam、Xbox Live等)。
一、理解 Online Subsystem 的核心概念
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
1.1 什么是 Online Subsystem?
作用:一个抽象层,统一不同平台的在线服务(如登录、会话、好友、成就等)。
-  关键接口: 
 - IOnlineSubsystem:主入口,获取其他功能接口。 
IOnlineSession:管理多人游戏会话(创建/加入房间、匹配)。
IOnlineIdentity:处理玩家身份验证(登录/登出)。
IOnlineFriends:好友列表管理。
IOnlineStore:内购功能。 
1.2 支持的平台服务
默认支持:Null(本地测试)、EOS、Steam、Xbox Live、PSN等。
配置文件:通过 DefaultEngine.ini 切换不同平台的后端服务。
二、环境配置与基础设置
2.1 启用 Online Subsystem
-  修改 DefaultEngine.ini 
 - 在项目配置文件中指定使用的在线服务(例如用 Null 测试):
 
[OnlineSubsystem]
DefaultPlatformService=Null  // 本地测试用
 
-  插件管理 
 - 在虚幻编辑器中启用 Online Subsystem 相关插件: 
Edit > Plugins > Search “Online” → 启用 Online Subsystem Steam/EOS 等。 
三、 基础功能实现(C++/蓝图)
3.1 玩家登录(Identity)
C++ 示例:
#include "OnlineSubsystem.h"
#include "OnlineIdentityInterface.h"void AMyPlayerController::Login()
{IOnlineSubsystem* OnlineSub = IOnlineSubsystem::Get();if (OnlineSub){IOnlineIdentityPtr Identity = OnlineSub->GetIdentityInterface();if (Identity.IsValid()){Identity->OnLoginCompleteDelegates->AddUObject(this, &AMyPlayerController::HandleLoginComplete);Identity->Login(0, FOnlineAccountCredentials("Type", "User", "Password"));}}
}void AMyPlayerController::HandleLoginComplete(int32 LocalUserNum, bool bWasSuccessful, const FUniqueNetId& UserId, const FString& Error)
{if (bWasSuccessful) { UE_LOG(LogTemp, Warning, TEXT("登录成功!")); }
}
 
-  蓝图: 
 - 使用 Online Subsystem Blueprint Library 中的节点(如 Login、On Login Complete)。
 
3.2 创建/加入会话(Session)
-  创建会话: 
 - 示例:
 
IOnlineSessionPtr Session = OnlineSub->GetSessionInterface();
if (Session.IsValid())
{FOnlineSessionSettings Settings;Settings.bIsLANMatch = false; // 在线会话Settings.NumPublicConnections = 4; // 最大玩家数Session->CreateSession(0, "MySession", Settings);
}
 
-  加入会话: 
 - 通过 FindSessions 搜索可用房间,再调用 JoinSession。
 
四、 本地测试与调试
4.1 使用 Null 子系统测试
在 DefaultEngine.ini 中设置 DefaultPlatformService=Null,无需真实平台账号即可测试功能。
启动两个本地客户端(PIE 或独立进程)模拟多人联机。
4.2 日志查看
在输出日志中过滤 LogOnline,查看在线子系统的调试信息:
UE_LOG(LogOnline, Log, TEXT("Session created!"));
 
五、进阶功能
5.1 好友与邀请
使用 IOnlineFriends 接口获取好友列表:
IOnlineFriendsPtr Friends = OnlineSub->GetFriendsInterface();
Friends->ReadFriendsList(0, "default");
 
5.2 成就系统
通过 IOnlineAchievements 解锁成就:
IOnlineAchievementsPtr Achievements = OnlineSub->GetAchievementsInterface();
Achievements->WriteAchievements(0, AchievementId);
 
