Setup

首先需要一个自定义的GameInstance;

GameInstance是引擎第一批初始化的对象之一,并且持续整个游戏会话;

  1. 创建一个UGameInstance class,这里命名为MyGameInstance

  1. 在Project Setting中,找到GameInstance,点+号,创建一个GameInstance Blueprint,然后设置父类为刚建GameInstance;


Movie Player Module

MoviePlayer模块可以与游戏引擎进行对话,并在完成任务时告知游戏引擎,从而使引擎继续运行。
MoviePlayer在其自己的线程中运行,这意味着它可以在引擎停止等待文件加载的同时运行。 另外,因为它在后台线程中,所以您必须使用Slate小部件,而不是较新的UMG小部件。

为了使用Movie Player模块,我们必须将其包含在我们的项目中。 打开游戏的 Build.CS 文件,然后添加MoviePlayer模块,如下所示:

PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "MoviePlayer" });

code

回到之前创建的GameInstance class

MyGameInstance.h

public:UMyGameInstance();void BeginLoadMap(const FString& MapName);void EndLoadMap(UWorld* LoadedWorld);UPROPERTY()UUserWidget* CurrentWidget;// loading widgetUPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UMGGame")TSubclassOf<UUserWidget> LoadingWidget;
};

MyGameInstance.cpp主要代码

FLoadingScreenAttributes
https://docs.unrealengine.com/en-US/API/Runtime/MoviePlayer/FLoadingScreenAttributes/index.html

// Fill out your copyright notice in the Description page of Project Settings.#include "MyGameInstance.h"
//#include "Runtime/MoviePlayer/Public/MoviePlayer.h"
#include "MoviePlayer.h"...void UMyGameInstance::Init()
{Super::Init();UE_LOG(LogTemp, Warning, TEXT("---INIT----"));//PreLoadMap,开始加载mapFCoreUObjectDelegates::PreLoadMap.AddUObject(this, &UMyGameInstance::BeginLoadMap);//PostLoadMapWithWorld, 加载完成后FCoreUObjectDelegates::PostLoadMapWithWorld.AddUObject(this, &UMyGameInstance::EndLoadMap);
}void UMyGameInstance::BeginLoadMap(const FString& MapName)
{//if (IsRunningDedicatedServer())//{// return;
//  }FLoadingScreenAttributes LoadingScreen;LoadingScreen.bAutoCompleteWhenLoadingCompletes = false;LoadingScreen.bWaitForManualStop = false; LoadingScreen.bMoviesAreSkippable = false;LoadingScreen.MinimumLoadingScreenDisplayTime = 1.5f; // movie最少播放时间LoadingScreen.WidgetLoadingScreen = FLoadingScreenAttributes::NewTestLoadingScreenWidget(); // movie不存在时,显示的widgetif (LoadingWidget != nullptr){CurrentWidget = CreateWidget<UUserWidget>(this, LoadingWidget);TSharedPtr<SWidget> LoadScreen = CurrentWidget->TakeWidget();LoadingScreen.WidgetLoadingScreen = LoadScreen;}else{UE_LOG(LogTemp, Warning, TEXT("LoadingWidget == nullptr"));}GetMoviePlayer()->SetupLoadingScreen(LoadingScreen);}void UMyGameInstance::EndLoadMap(UWorld* LoadedWorld)
{UE_LOG(LogTemp, Warning, TEXT("end load map"));
}...

打开MyGameInstance_BP ,设置做好的Widget

然后需要点击Launch或Package后才会看到效果

UE4 实现真加载Loading Screen/movie player相关推荐

  1. React Native封装Toast与加载Loading组件

    React Native开发封装Toast与加载Loading组件 在App开发中,我们避免不了使用的两个组件,一个Toast,一个网络加载Loading,在RN开发中,也是一样,React Nati ...

  2. 安卓设置菊花动画_Android仿ios加载loading菊花图效果

    项目中经常会用到加载数据的loading显示图,除了设计根据app自身设计的动画loading,一般用的比较多的是仿照ios 的菊花加载loading 图,当然一些条件下还会涉及到加载成功/ 失败情况 ...

  3. [Swift通天遁地]五、高级扩展-(11)图像加载Loading动画效果的自定义和缓存

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  4. php ajax loading图片居中显示,PHP语言入门之PHP+ajax实现登录按钮加载loading效果

    本篇教程探讨了PHP语言入门之PHP+ajax实现登录按钮加载loading效果,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. < php+ajax实现登录按钮加载loa ...

  5. Android 仿微信小程序开屏页加载loading

    Android 仿微信小程序开屏页加载loading 废话不多说,先上效果图~ 首先就是底层有一个灰色的圆,然后按照圆形的轨迹进行绘制. 啊~说那么多也没用,还是直接上代码吧,哈哈哈哈 绘制底部圆形及 ...

  6. 创意svg加载loading小猫动画

    下载地址 svg实现的创意加载loading特效,小猫推logo的动画特效. dd:

  7. jsp预加载转圈_30种CSS3炫酷页面预加载loading动画特效(推荐)

    这是一组效果非常炫酷的CSS3页面预加载loading动画特效.该特效共有30种不同的loading效果.所有的加载动画都是使用CSS3来完成,jQuery代码只是用于隐藏加载动画.当你点击页面的任何 ...

  8. Android 花里胡哨的加载Loading动画

    记录查找了一些实用的加载动画,真的是花里胡哨!!! 1. AVLoadingIndicatorView-master AVLoadingIndicatorView各种加载效果,适合做加载loading ...

  9. 页面预加载loading动画,再载入内容

    默认情况下如果网站请求速度慢,所以会有一段时间的空白页面等等,用户体验效果不好,见到很多的页面都有预加载的效果,加载之前先加载一个动画,后台进程继续加载页面内容,当页面内容加载完之后再退出动画显示内容 ...

最新文章

  1. DokiCam 360°4K相机:为极致运动爱好者而生
  2. haproxy负载均衡_做负载均衡Nginx、HAProxy和LVS总有一个适合你
  3. c语言 文件f指针,C语言文件选择题
  4. 2012 安装mysql 5.6_如何安装mysql server 5.6
  5. FPGA设计技巧总结
  6. 极大似然法(ML)与最大期望法(EM)
  7. 主板电源开关接口图解_图解:主板电线接法(电源开关、重启等)
  8. 计算机课程 图层关系认识 课件,全国“xx杯”计算机类说课大赛课件一等奖作品:图层蒙版说课课件...
  9. 在ie6下实现position-fixed的效果
  10. element-ui tree全部展开和全部折叠
  11. 服务器2016安装系统教材,Windows Server 2016 正式版安装教程
  12. 如何在PPT中插入Visio文件
  13. 用R建立岭回归和lasso回归
  14. 【XML系列】----DTD中的元素定义
  15. 【IDEA用法】IDEA新建文件自动加入SVN,删除文件自动从SVN中删除
  16. 东哥java学习第二天---Java基础
  17. spring事务 调用同类方法,同类方法要事务不生效怎么办
  18. Hibernate - 对象关系映射文件(*.hbm.xml)详解
  19. SpringBoot自动装配原理浅析
  20. IMAX探索VR产业,欲再造电影业传奇!

热门文章

  1. C#导出到通讯录 生成微信头像跟VCF文件 并把头像保存在阿里云
  2. java bho_无法让BHO工作在64位
  3. (初学者)Python实现:九九乘法表
  4. 尚硅谷2020微服务分布式电商项目《谷粒商城》-支付、秒杀
  5. 闪送完成D1轮6000万美元融资,五岳资本领投
  6. 【Linux】找不到ensss IP地址 或者连接不上ssh解决方法
  7. 彻底弄清楚session是什么?
  8. SAX解析xml字符串
  9. 图技术助力汽车制造业解锁数据新价值
  10. ZCMU1980-不存在的泳池