效果

步骤
新建一个文件夹,命名为“Interfaces”,在该文件夹内新建一个蓝图接口,命名为“I_HUD”

打开“Interfaces”,默认的函数名改为“SetClock”,添加一个输入,命名为“Time”,整数数组类型。添加一个输出,命名为“Success”,类型为布尔。

添加一个新函数,命名为“SetCalendar”,同样添加一个输入输出

创建一个枚举,命名为“MonthNames_ENUM”

打开“MonthNames_ENUM”,创建如下枚举值

打开“MyGameState”

在类设置中添加蓝图接口“I_HUD”

在“MyGameState”的函数“Calendar”中搜索“Set Calendar(消息)”来添加该节点

在事件图表中,在事件开始运行后获取玩家控制器,将其类型转换为“CameraPawnController”

将返回值提升为变量

命名为“ControllerRef”

然后在函数“Calendar”中,拖入变量“ControllerRef”

在函数“Clock”中,创建如下节点

打开“MainUI_HUD”,点击类设置,添加蓝图接口“I_HUD”

在设计器中,对“Hour”这个文本控件的文本内容创建一个绑定函数

函数命名为“GetHour”

同理,绑定如下函数

新建两个变量,数据类型为整型数组

打开接口函数“SetClock”,创建如下节点:

打开接口函数“SetCalendar”,创建如下节点:

打开函数“GetHour”,创建一个局部变量,命名为“hour_LocalVariable”

在“GetHour”内添加如下节点

打开函数“GetMinute”,创建两个局部变量,命名为“minute_LocalVariable”和“minuteText”,分别为整数类型和字符串类型。

在“GetMinute”内部添加如下节点

打开函数“GetAmPm”,创建一个局部变量,命名为“AmPm_LocalVariable”,为文本类型

在“GetAmPm”内添加如下节点:

此时运行结果就可以看到当前的游戏日期在不断发生变化,效果如文章开头所示。