效果
1. 创建房间、搜索房间功能
2. 根据指定IP和端口加入游戏
步骤
1. 新建一个第三人称角色模板工程
2. 创建一个空白关卡,这里命名为“InitMap”
3. 新建一个控件蓝图,这里命名为“UMG_ConnectMenu”
在关卡蓝图中显示该控件蓝图
打开“UMG_ConnectMenu”,添加如下控件
首先添加创建房间按钮的点击事件
当该按钮点击时创建一个会话,其中,创建会话节点中的PublicConnections 参数可以帮助你控制服务端接受的客户端连接数量。当有新的客户端尝试连接到游戏会话时,如果游戏会话的当前连接数(已连接的客户端数量)小于 PublicConnections 参数指定的值,那么新的客户端连接会被接受,加入到游戏会话中。如果已经达到了 PublicConnections 指定的最大连接数,那么新的客户端连接将被拒绝。例如,如果你将 PublicConnections 参数设置为 4,表示你的游戏会话允许最多 4 个玩家同时连接。
Use Lan参数表示是否使用局域网
当勾选框状态变化时改变布尔变量“IsUseLAN”的值
创建房间后打开新关卡
此时运行,点击创建房间按钮,可以看到输出日志,服务器默认使用7777端口:
继续添加搜索房间的点击事件:
其中,寻找会话节点的MaxResult引脚表示搜索结果数量上限,当寻找会话结果成功后,我们将Results返回值提升为变量,失败就打印失败信息。
我们准备将搜到的房间信息在如下区域显示:
4. 新建一个控件蓝图,这里命名为“UMG_SessionSlot”,用于展示房间信息
打开“UMG_SessionSlot”,添加如下控件:
在图表中添加一个事件分发器
打开“InitInfo”,添加4个输入
在事件图表中设置文本控件内容
添加加入按钮点击事件
变量“Search Result”类型为蓝图会话结果,勾选可编辑实例,生成时公开。
5. 回到控件蓝图“UMG_ConnectMenu”,继续完成搜索房间逻辑
添加IP和Port输入框的change事件
将输入的IP和port存储为文本类型变量
添加进入按钮的点击事件
添加输入控制台命令和执行按钮点击事件
6. 设置多玩家选项
运行效果如文章开头所示。