Language:
Page Info
Engine Version:
Share
此中文页面内容对应的英文页面有后续更新,如需浏览最新文档可切换至英文页面浏览。

在线会话节点

本页面的内容:

在线会话节点

以下节点通过 蓝图 在多人游戏中创建主机、寻找、加入或退出。

这些节点为 隐藏,意味着它们在后台执行操作(通常因为这些操作必须通过网络进行交流),并在之后的某点结束。节点右上角的钟表图标即代表其为隐藏节点。

创建会话

CreateSession.png

首先从 Create Session 节点开始。游戏成功创建一个会话后,游戏的其他实例即可发现(使用 Find Session 节点)并加入(使用 Join Session 节点)。在此节点上可指定会话中允许的玩家数量,以及是否可在 LAN 模式中创建会话。对于支持的在线子系统模块而言,将 LAN 模式设为 false 将尝试创建在线游戏。

Online Subsystem 概述 文档中有在线子系统和会话界面的综述。

寻找会话

FindSessions.png

使用 Find Sessions 节点获取当前公布并可加入的游戏会话的列表。BlueprintSessionResult 从成功调用返回后可获取服务器的名称、ping 和玩家数量。

加入会话

JoinSession.png

确定加入的 BlueprintSessionResult 后,将其传入 Join Session 调用。如游戏成功连接到服务器,它将自动前往服务器的映射并加入游戏。

销毁会话

DestroySession.png

如不希望其他玩家发现并加入游戏,可调用 Destroy Session 节点。此操作将导致您离开会话;如您为主机,将会话关闭,使其无法被发现。

此节点还用于离开会话。客机离开游戏时也需要调用此节点。

错误处理节点

处理网络操作时始终存在出现错误的可能,游戏需要对错误进行恰当的处理。可能主机已于先前推出您尝试加入的会话,也可能您的网络服务已临时关闭,还可能出现不胜枚举的各种其他错误。游戏可通过蓝图灵活处理这些与网络相关的错误。

以上会话操作出现的错误将通过 OnFailure 执行引脚进行报告,以便对游戏进行设置,处理问题。对于一些特定类型的错误,或游戏进程中发生的错误,可从 GameInstance 蓝图中调用两个错误事件 - Network ErrorTravel Error

Event Network Error

EventNetworkError.png

Network Error 事件允许游戏对事件进行回应,接收描述错误类型的枚举值,并进行适当的回应 - 如游戏可能对用户显示一个对话框。

Event Travel Error

EventTravelError.png

Travel Error 事件不及 Network Error 常见,使游戏处理 Network Error 未涉及的情况(如尝试加载无效地图)。