您的网站空间即将过期,北京网站建站公,手机page转换wordpress,支付网站建设费入什么科目前言
本篇实现的效果是在游戏运行后能够记录当前的游戏时间#xff08;年月日时分秒#xff09;#xff0c;并且可以通过修改变量从而改变游戏时间进行的快慢。
效果 步骤
1. 在Blueprints文件夹中新建如下两个文件夹#xff0c;分别命名为“GameSettings”、“Player”…前言
本篇实现的效果是在游戏运行后能够记录当前的游戏时间年月日时分秒并且可以通过修改变量从而改变游戏时间进行的快慢。
效果 步骤
1. 在Blueprints文件夹中新建如下两个文件夹分别命名为“GameSettings”、“Player” 将“RTS_CameraPawn_BP”和“RTS_PlayerController_BP”移动到“Player”文件夹中 将“RTS_GameModeBase_BP”移动到“GameSettings”文件夹中 新建一个游戏状态基础 命名为“RTS_GameState_BP” 新建一个文件夹命名为“Library” 在该文件夹中新添加一个蓝图函数库 命名为“RTS_FuncLib” 再添加一个蓝图接口 命名为“RTS_GameTime_IF” 2. 打开蓝图函数库“RTS_FuncLib”重命名新函数为“SetGameTime” 添加三个输入和两个输出分别命名为“DeltaTime”、“GameSpeed”、“InitialGameTime”、“GameTime”、“DayCount” 添加如下节点 3. 打开蓝图接口“RTS_GameTime_IF”将新函数重命名为“UpdateGameSpeed” 添加一个输入命名为“SpeedMultiplier”浮点类型 4. 打开游戏状态基础“RTS_GameState_BP”新建一个宏命名为“ReferneceCasts” 在宏中添加如下节点来获取玩家控制器“RTS_PlayerController_BP”的引用其中变量“ControllerRef”是类型转换后引脚“As RTS Player Controller BP”提升为的变量。 在事件图表中添加如下节点来执行宏 每一帧执行蓝图函数库中的创建的函数“SetGameTime” 将引脚“GameSpeed”和“InitialGameTime”提升为变量然后命名为“GameSpeed”和“GameTime”默认值分别为150、0 新添加一个整型变量命名为“DayCounter” 设置“GameTime”和“DayCounter” 添加如下三个整型变量分别命名为“Hours”、“Minutes”、“Seconds” 均为公有变量这个变量用于表示当前的游戏时间。其中“Hour”的默认值设置为11表示游戏一开始游戏处于中午。 在游戏开始时根据时分秒设置初始的游戏时间单位小时 再添加三个整型变量分别命名为“Year”、“Month”、“Day”用于表示当前的游戏日期均为公有变量这里默认值分别设置为2023、8、10 添加一个整型数组类型变量命名为“GameDate” 在设置初始游戏时间后继续设置初始游戏日期 新建一个浮点型变量命名为“DefaultGameSpeed”默认值设为150 设置初始游戏速度 新建一个函数命名为“SetClock” 该函数逻辑如下 再添加一个函数命名为“SetCalendar” 函数逻辑如下 再事件图表中去调用这两个函数 在类设置中添加蓝图接口“RTS_GameTime_IF” 新添加一个浮点型变量命名为“SpeedMutiplier”默认值设为1 在事件图表中添加如下节点 添加一个事件调度器命名为“GameSpeedControl” 添加一个浮点类型输入命名为“GameTime” 调用该事件调度器 5. 打开游戏模式基础“RTS_GameModeBase_BP”设置游戏状态类为“RTS_GameState_BP” 此时运行游戏可以看到视口左上角打印的年月日时分秒如下所示 如果想加快游戏时间可以将游戏状态“RTS_GameState_BP”中的变量“DefaultGameSpeed”的默认值设置小一点。 比如我把变量“DefaultGameSpeed”的默认值设置为0.025游戏时间就加快了 变量“DefaultGameSpeed”控制着现实时间和游戏时间的换算关系 如果 “DefaultGameSpeed”的默认值设置为3600就表示现实时间和游戏时间完全同步 如果 “DefaultGameSpeed”的默认值设置为150就表示现实中的1小时游戏中的1天 如果 “DefaultGameSpeed”的默认值设置为2.5就表示现实中的1分钟游戏中的1天