效果
步骤
新建一个文件夹,命名为“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”内添加如下节点:
此时运行结果就可以看到当前的游戏日期在不断发生变化,效果如文章开头所示。