UE4-利用UMG动画制作场景切换Loading进度条

此文介绍的也是我用UMG动画实现的一个假的Loading进度条。除了0%和100%的中间过程都是假的。
##GameInstance设置
UE4在执行场景切换的时候,GameMode也是会相应的销毁和新建的,所以我们控制Loading进度的变量不能存在GameMode中,在此我选择在GameInstance中来保存Loading进度的控制变量。新建两个float变量:LoadingPerc和LoadingTime,其中LoadingTime初始值为0.8。
先创建一个widget名为LoadingScreen,两个场景:Battle和Home。然后在GameInstance中写加载LoadingScreen和场景切换的事件。
这里写图片描述

##UMG制作
现在我们来制作LoadingScreen这个UMG。
在Designer中加入一张图片覆盖整个屏幕,再加入Text和一个Circular Throbber,最下方是一个ProgressBar。
这里写图片描述
接下来在设计窗口最下方添加一个动画名为LoadingAni,添加进度条0进度到0秒的关键帧,0.8进度到1秒的关键帧。
这里写图片描述
如何制作UMG动画可以参考官方文档:
https://docs.unrealengine.com/latest/CHN/Engine/UMG/UserGuide/Animation/index.html

切换到Graph窗口,我们开始写LoadingScreen的动画播放逻辑:
这里写图片描述

此处播放动画LoadingAni的时候,起始点和播放时间就是由GameInstance中定义的两个变量控制的,而且播放之后还会重新set这两个变量的值,上图稍微有点乱=。=

##新场景的场景蓝图设置
最后我们来带Battle场景的场景蓝图,添加如下代码:
这里写图片描述

按本例所做,进度条的前80%已经在Openlevel之前播放,此处是用来播放后20%的。至此,假Loading进度条的功能已经全部实现,读者可以在home中通过按键或者点击UMG按钮来触发场景切换,就能看到我们的Loading进度条功能成功实现了。

##NOTES

笔者在使用OpenLevel切换场景的时候遇到了一些问题,因为OpenLevel执行时会清视口,所以前面不加delay的话,我们的loadingScreen就无法显示出来。

  • 4
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值