首先要说明一点目前市面上的遊戏绝大多数的Loading进度条,除了0%和100%的中间过程都是假的也就是说中间的加载期间只是播放了一个进度条的动画而已。在UE4中想要实现一个真嘚Loading进度条也是十分困难的因为在场景切换的过程中,你是无法得到在前一个场景得到新场景加载相关信息的据说有国外的大神做了一個插件来实现真的Loading进度条,但是我没有找到此文介绍的也是我用UMG动画实现的
切换到Graph窗口,我们开始写LoadingScreen的动画播放逻辑:
此处播放动画LoadingAni的时候起始点和播放时间就是由GameInstance中定义的两个变量控制的,而且播放之后还会重新set这两个变量的值上图稍微有点乱=。=
最后我们来带Battle场景的场景蓝图添加如下代码:
按本例所做,进度条的前80%已经在Openlevel之前播放此处是用来播放后20%的。至此假Loading進度条的功能已经全部实现,读者可以在home中通过按键或者点击UMG按钮来触发场景切换就能看到我们的Loading进度条功能成功实现了。
笔者在使用OpenLevel切换场景的时候遇到了一些问题因为OpenLevel执行时会清视口,所以前面不加delay的话我们的loadingScreen就无法显示出来。