UE5&C++ 多人 TPS 游戏(五)
控制 Session 会话
1. 创建 Session
创建完成后需要通知各个设备完成情况,所以需要委托和回调来配合。
Interface 会话接口有控制权,自然有存放 委托 的地方:委托列表(Delegate list)。
所以整体流程是:接口通知 steam 创建 -> steam 创建完成,通知接口 -> 接口通过委托回调函数反馈信息。
1.1 委托和回调
什么是委托?(TODO: 具体原理、实现方式,后续在 C++学习 中补充)。
现在先简单了解一下:
委托 是一个持有对函数的引用(Reference)的对象。
虚幻引擎的委托可以与函数绑定,可以广播到所有与它绑定的函数接收并执行以进行响应的信号。我们通常会编写 回调函数 然后将它们绑定到委托上。于是,当游戏中的某个确定事件(Certain event)发生时,委托被触发或者广播,任何绑定在该委托的回调函数都将进行响应。

委托虚幻内的具体定义,两个参数:会话名 和 执行成功与否

1.2 绑定回调
构造初始化

1.3 执行创建

先通过 会话名称获取 已有会话,先清除再创建。
-
会话名称是硬编码,都是一个名称。

-
销毁后需要添加委托进入 Interface 的委托列表。

-
最后创建,不过需要准备好参数(玩家的网络ID、会话名称、会话设置)。

1.4 测试
打印信息编写,成功蓝色:Create session: GameSession; 失败红色:Failed to create session!。

角色蓝图调用 CreateGameSession 开启会话创建。

打包测试结果之前需要增加一些配置,SessionSettings->bUseLobbiesIfAvailable = true,这条一定记得,否则可能创建会话失败:

之后打包测试结果,成功蓝色:Create session: GameSession:


浙公网安备 33010602011771号