我们在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,让其事件与日出日落同步。
测试成功。