效果

步骤
打开项目设置,重新设置玩家状态类为“MyGameState”

打开“MyGameState”,

点击类设置,选中父类为“GameStateBase”

接着创建一些变量:
(1)“TimeUnit”,浮点型,私有,默认值为1.0
(2)“Clockwork”,浮点型,私有,默认值为0.0
(3)“Seconds”,整型,公有,默认值为0
(4)“Minutes”,整型,公有,默认值为0
(5)“Hours”,整型,公有,默认值为0
(6)“GameTime”,整型数组,私有,默认值为0
(7)“Day”,整型,公有,默认值为1
(8)“Month”,整型,公有,默认值为1
(9)“Year”,整型,公有,默认值为1
(10)“GameDate”,整型数组,私有,默认值为0
(11)“DayTick”,整型,私有,默认值为0

添加如下节点:

将选中的节点重叠到函数

重命名该函数为“Set Clockwork”

双击打开“Set Clockwork”,重命名输入输出节点,设置为纯函数

添加一个新函数,命名为“Clock”,用于来计算当前的游戏时间(时分秒)

在函数内添加如下节点:



然后在事件图表中使用该函数

此时运行游戏就可以打印当前游戏的运行时间:

可以看到已经打印出了格式为时分秒的游戏时间,但是游戏时间走的太快了,我们可以修改“TimeUnit”这个变量的默认值为2.5

此时游戏里的一天(24h)就相当于现实世界的一分钟。
按照这样计算,我们修改“TimeUnit”这个变量的默认值为150,则游戏里的一天就相当于现实世界的一个小时。

此时的游戏时间就走的比较慢了:

创建一个新函数,命名为“Calendar”,用来计算当前的游戏日期

在函数内添加如下节点:



在事件图表中调用该函数:

调小变量“TimeUnit”的默认值,让游戏时间变得更快

此时运行游戏效果如下:
可以看到随着游戏时间的增加,游戏中的日期也会增加

为了能够在游戏开始前,能够根据用户设置的时间来设置游戏起始时间,我们在事件图表中添加如下节点:

我设置变量“Year”、“Month”、“Day”的默认值分别为2022、12、31,运行结果如下:
