当前位置: 首页 > news >正文

【UE4 RTS游戏】05-自定义日期和时间

效果

步骤

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

  1. 打开“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”,重命名输入输出节点,设置为纯函数

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

在函数内添加如下节点:

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

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

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

此时游戏里的一天(24h)就相当于现实世界的一分钟。

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

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

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

在函数内添加如下节点:

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

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

此时运行游戏效果如下:

可以看到随着游戏时间的增加,游戏中的日期也会增加

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

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

http://www.lryc.cn/news/36340.html

相关文章:

  • ES的restful风格的HTTP方法详解
  • 第十三章 opengl之模型(导入3D模型)
  • html标签表示!
  • 前端优化,webpack打包删除无用文件,并附上批量删除文件脚本!非常好用
  • SpringCloud之 LoadBalancer负载均衡
  • idm如何下载种子文件和磁力链接 idm如何下载torrent
  • UE4 安卓AR 识别图片
  • 数字化服务环境下高校成人教育图书馆服务工作的发展方向
  • 以创作之名致敬女性开发者
  • 【ArcGIS学习记录03】--利用DEM数据提取河网溪流--加入大型河流数据及裁剪美化
  • VOC2012数据集取需要的几个类别
  • 主成分分析(PCA)原理
  • Git:合并一个仓库的某个分支到另一个仓库的某个分支
  • 工作记录:bi重构
  • java明文数据加密、脱敏方法总结
  • 4N65-ASEMI高压MOS管4N65
  • 天梯赛训练L1-018 (大笨钟)
  • GCC编译器编译C/C++程序(一步完成、分步完成)
  • Java8中那些方便又实用的Map函数
  • 如何修复dxgi.dll文件错误?修复方法推荐
  • 数字化时代,你应该知道的BI
  • 前端jQuery ajax请求,后端node.js使用cors跨域
  • 【最重要的 G 代码命令列表】
  • 好用的公共DNS地址共享
  • C#:Krypton控件使用方法详解(第十三讲) ——kryptonDomainUpDown
  • Git设置SSH Key
  • WireShark如何抓包,各种协议(HTTP、ARP、ICMP)的过滤或分析,用WireShark实现TCP三次握手和四次挥手
  • 熬夜30天吃透这九大Java核心专题,我收割了3个大厂offer
  • DMHS搭建DMDSC 2节点集群同步到单库
  • 一条sql执行很慢可能的原因,如何优化