UE5&C++ 多人 TPS 游戏(五)

控制 Session 会话

1. 创建 Session

创建完成后需要通知各个设备完成情况,所以需要委托和回调来配合。
Interface 会话接口有控制权,自然有存放 委托 的地方:委托列表(Delegate list)
所以整体流程是:接口通知 steam 创建 -> steam 创建完成,通知接口 -> 接口通过委托回调函数反馈信息。

1.1 委托和回调

什么是委托?(TODO: 具体原理、实现方式,后续在 C++学习 中补充)。
现在先简单了解一下:
委托 是一个持有对函数的引用(Reference)的对象
虚幻引擎的委托可以与函数绑定,可以广播到所有与它绑定的函数接收并执行以进行响应的信号。我们通常会编写 回调函数 然后将它们绑定到委托上。于是,当游戏中的某个确定事件(Certain event)发生时,委托被触发或者广播,任何绑定在该委托的回调函数都将进行响应

image

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

1.2 绑定回调

构造初始化
image

1.3 执行创建

image
先通过 会话名称获取 已有会话,先清除再创建。

  • 会话名称是硬编码,都是一个名称。
    image

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

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

1.4 测试

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

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

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

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

2. 加入 Session

posted @ 2024-04-17 22:22  bok_tech  阅读(103)  评论(0)    收藏  举报