【UE4 RTS】09-Day and Night

前言

本篇博客实现的效果是太阳和天空会随着游戏时间的变化而变化。

效果

步骤

  1. 设置"LightSource"为可移动的
  1. 新建一个文件夹,命名为"Lighting"
  1. 打开游戏状态"RTS_GameState_BP",添加一个函数命名为"GetGameSpeed"

添加一个浮点类型的输出,命名为"GameSpeed",将变量"GameSpeed"赋予到输出引脚"GameSpeed"上。

  1. 添加一个父类为Actor的蓝图类,命名为"SunRotation_BP"

打开"SunRotation_BP",在事件图表中先获取到游戏状态的引用,将获取的引用作为变量,命名为"GameStateRef"

调用游戏状态"RTS_GameState_BP"中的事件调度器"GameSpeedControl",当游戏状态中的"GameSpeed"被修改了,这里会调用自定义的委托事件。这里事件图表中的变量"GameSpeed"是将函数"GetGameSpeed"输出的值提升为变量。

  1. 打开"RTS_FuncLib",将函数"SetGameTime"设置为纯函数
  1. 回到蓝图"SunRotation_BP"中添加一个浮点类型变量,命名为"GameTime"

再添加两个变量,分别命名为"SunRef"、"SkySphereRef"

分别是"定向光源"和"BP Sky Sphere"的对象引用,均为可编辑实例

在事件图表中添加如下节点

  1. 将"SunRotation_BP"拖入视口

在细节面板中设置定向光源和天空盒的引用

此时运行游戏太阳和天空已经能够用跟随游戏时间而发生变化,为了能更清楚的观察这个变化,这里我们将游戏状态"RTS_GameState_BP"中的变量"GameSpeed"和变量"DefaultGameSpeed"的值都由150改为0.25,(测试后改回150)效果如下:

相关推荐
李岱诚4 天前
epic商城下载,ue4报错处理
游戏引擎·ue4
爆米花煮鸡蛋4 天前
UE4.27生成sln时失败:Missing .../DotNET/UnrealBuildTool/UnrealBuildTool/UnrealBuildTool.exe after build
ue4
海中有金4 天前
UE4 内存池浅谈[3]——3代内存池对比总观
ue4·图形渲染
询问QQ:688238865 天前
Labview交通灯程序设计——机动车道与人行道绿灯时间设置带报告
ue4
倾心唯恋6 天前
更新Epic后通过工程路径和Epic双击打不开UE4项目,提示Failed to launch editor的解决办法
ue4
2501_938931336 天前
UE4SS-RE 安装全指南:基础环境变量设置到高级跨版本部署适配
ue4
小宝哥Code6 天前
UE5在布局自定义上的UE4ClassicLayout.ini文件源码解读分析
java·ue5·ue4
T***u3337 天前
PHP在电商中的会员管理
开发语言·wireshark·php·ue4·jina
染指111011 天前
18.游戏逆向-pxxx-使用ida分析UProperty结构中的offset和size解密
ue4·虚幻引擎
2501_938782091 个月前
《UE4 蓝图基础:蓝图编辑器打开与节点连接的核心逻辑》
编辑器·ue4