OnlineSubsystem
本周尝试联网,使用引擎自带的 OnlineSubsystem,只实现简单的创建游戏会话,查找并加入游戏会话功能。
有 六点 要注意的:
-
在配置文件
{Project}/Config/DefaultEngine.ini
中添加配置[OnlineSubsystem] DefaultPlatformService=Null
-
修改完配置要重新启动 UE4,否则会报 OnlineSubsystem 没有初始化
LogScriptCore:Warning: Script Msg: CreateSession - Invalid or uninitialized OnlineSubsystem LogScriptCore:Warning: Script Msg: CreateSession - Cannot map local player to unique net ID
-
如果是 C++ 项目,去掉项目构建文件 {Project}.Build.cs 中的下面这行注释(其实代码上面那行注释已经说的很明白)
PrivateDependencyModuleNames.Add("OnlineSubsystem");
-
在使用相关蓝图节点时一定要给 Player Controller 引用赋值
- Create Session
- Find Sessions
- Join Session
-
不要自动连接到服务器
否则会自动进入游戏内状态,如果没有游戏内容的话,作为客户端的窗口会是一片黑
- 注意 可靠性
默认情况下,RPC 并不可靠,所以一些关键的事件和函数调用,记得勾选:
可靠函数如果是 C++ 代码,记得添加 Reliable:
UFUNCTION( Client, Reliable );
void ClientRPCFunction();
未完待续
Gameplay 框架中的相关类,在使用 OnlineSubsystem 进行编程时,有许多概念点是要理清的,后续会结合一个小游戏的开发再梳理一下。
网友评论