事前准备
官方文档>>>>>>基本结构和用途
基本模块 OnlineSubsystem 定义服务指定的模块,并在引擎中进行注册。在初始化期间,在线子系统将尝试加载"Engine.ini"文件中指定的默认在线服务模块。对在线服务的所有访问都将通过此模块。
[OnlineSubsystem]
DefaultPlatformService=
若成功,未指定参数时,将通过静态存取器使用默认在线子系统。
static IOnlineSubsystem* Get(const FName& SubsystemName = NAME_None)
若调用此函数需请求其他服务,将按需进行加载。若标识符无效或加载模块失败,将适宜地返回 null。
基本文件夹
俩地图
大厅的模式与控制器
大厅的类默认改为大厅控制器
初始地图与大厅地图设置为相应的游戏模式(记得把初始地图改为start地图)
创建结构体设置玩家信息,创建右边的枚举
结构体(Structs) (或 UStructs)是可以帮助你整理和操作相关属性的数据结构。你可以使用结构体创建自定义变量类型,以便帮助整理项目。本指南将帮助你设置结构体,并就如何自定义结构体提供一些深度信息。
参考C嘎嘎结构体
给它塞俩文本变量
接下来是关于枚举
枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读。
枚举语法定义格式为:
enum 枚举名 {枚举元素1,枚举元素2,……};
接下来我们举个例子,比如:一星期有 7 天,如果不用枚举,我们需要使用 #define 来为每个整数定义一个别名:
#define MON 1
#define TUE 2
#define WED 3
#define THU 4
#define FRI 5
#define SAT 6
#define SUN 7
这个看起来代码量就比较多,接下来我们看看使用枚举的方式:
enum DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
};
这样看起来是不是更简洁了。
注意:第一个枚举成员的默认值为整型的 0,后续枚举成员的值在前一个成员上加 1。我们在这个实例中把第一个枚举成员的值定义为 1,第二个就为 2,以此类推。
可以在定义枚举类型时改变枚举元素的值:
enum season {spring, summer=3, autumn, winter};
没有指定值的枚举元素,其值为前一元素加 1。也就说 spring 的值为 0,summer 的值为 3,autumn 的值为 4,winter 的值为 5
原文:https://www.runoob.com/cprogramming/c-enum.html
枚举设置如下
创建房间,加入房间UI设置如下
关卡蓝图编写
为创建房间按钮绑定一个蓝图
:)加入房间按钮也要绑定一个一样的
此处蓝图作用为:获取[人物名称]文本,判断是否为空,如果为空,则设置返回值为false(既不启用)
创建游戏实例蓝图(game instance)
GameInstance的生命周期为整个进程,全局有且中有一个。所以可存储一些全局变量等。
项目设置中制定游戏实例类为它,里面的变量就俩
UI_start的蓝图编写如下
以下为ui_create
创建房间按键的点击蓝图如下
创建房间按钮也绑定一个跟之前差不多的函数
然后是加入房间蓝图
没啥要特别提一嘴的
值得一提的是搜出来的列表是另一个UI
这是它内部的蓝图
就是简单的输出一下对应的文本,然后在点击加入的时候便加入会话而已
格式化内的代码:名称{name} 人数:{now}/{max} 延迟{ms}ms
再提一嘴,关于在它被UI_JOIN调用的时机
就是在玩家点击了搜索之后