28_ue4进阶末日生存游戏开发[设置昼夜交替]

我们在GlobalTimer里添加一个变量IsDayTime

该变量为true的时候,代表白天,false代表晚上。

当时间>6且<18,为白天

 创建两个事件,一个enterday,一个enternight

修改一下逻辑,修改变量,同时可以激活事件

----------------------------------------------------------------------------------------------------------------

下面将灯光改成动态效果

将light source变成可移动光

 cast shadow也一定勾上。

打开世界设置,这样修改

然后构建灯光(我这里构建失败了,但是教程上是可以的)

每次移动light source,我们可以点击sky sphere的refresh按钮,太阳的位置和光色就变了。

 在globaltimer里面,添加sunliught变量,类型是方向光引用

 

我们将该变量设为public

 给变量赋值

 在globaltimer里面设置灯光的旋转

这里为啥不用setworldRotation呢,因为setactorrotation是设置整体的旋转, setworldRotation是设置组件的旋转。

先将旋转位置调到0,0,0

把向量分开

 用时间去驱动y轴,速度*10

 再添加一个变量,命名为skysphere,类型为BPskysphere引用,并设为public

 

为变量赋值

  对skysphere进行更新

连线

 把天光也改成可移动

 在globaltimer设置skylight变量,类型是skylight的引用,并设置成public

 

 在场景中为变量赋值

重新获取天空

 连线

测试成功

重新修改太阳旋转规则:如果一天是3s,如果目前游戏时间是10s的话,10%3=3余1。

那么现在就是第四天的第1/3的时间。太阳每天(每3s)转360°,那么此时太阳就转了360*1/3=120。

为了让日出日落符合6点和18点的需求,我们为角度加了一个提前量90,让其事件与日出日落同步。

测试成功。 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无情的阅读机器

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值