UE4-利用UMG动画制作场景切换Loading进度条
来源:互联网 发布:阿里云ftp端口号 编辑:程序博客网 时间:2024/05/16 11:15
首先要说明一点,目前市面上的游戏绝大多数的Loading进度条,除了0%和100%的中间过程都是假的。也就是说中间的加载期间只是播放了一个进度条的动画而已。在UE4中想要实现一个真的Loading进度条也是十分困难的,因为在场景切换的过程中,你是无法得到在前一个场景得到新场景加载相关信息的,据说有国外的大神做了一个插件来实现真的Loading进度条,但是我没有找到。此文介绍的也是我用UMG动画实现的
一个假的Loading进度条。
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就无法显示出来。
- UE4-利用UMG动画制作场景切换Loading进度条
- UE4 UMG 动画
- ue4 umg帧动画
- Unity3d制作Loading场景进度条
- Unity3d制作Loading场景进度条
- Unity3d中制作Loading场景进度条
- UE4蓝图案例:制作点击场景中的物体弹出UMG界面
- UE4蓝图案例:制作点击场景中的物体弹出UMG界面
- Unity3d异步记载场景&制作Loading场景进度条
- Unity3d中制作Loading场景进度条所遇到的问题
- Unity3d中制作Loading场景进度条所遇到的问题
- Unity3d中制作Loading场景进度条所遇到的问题
- Unity3d中制作Loading场景进度条所遇到的问题
- [Unity]异步加载场景和流畅loading进度条制作
- Unity3d中制作Loading场景进度条(转)
- Unity3d中制作Loading场景进度条所遇到的问题
- Unity3d中制作Loading场景进度条所遇到的问题
- Unity_制作Loading场景进度条_效果实现
- DOS命令:跨网段访问设置route
- Error Domain=NSURLErrorDomain Code=-1022 "The resource could not be loaded b
- 事故分析
- 线性最小二乘
- 根据Url参数调用具体的方法
- UE4-利用UMG动画制作场景切换Loading进度条
- JQ 获取祖、父、兄、子节点方法
- iOS 开发系统自带摇一摇
- php 发送qq邮件
- Ubuntu系统下汉字显示为方框解决方法
- opengles立方体贴图
- easyui设置文本框可读
- EJB定时器
- Android源码基础解析之异步任务AsyncTask