ue4如何恢复初始状态_UnrealEngine4初始化流程

自古以来全部的游戏引擎都分为三个大阶段:Init,Loop,Exit。UE4也不例外。

首先找到带有入口函数的文件:Runtime/Launch/Private/XXXX/LaunchXXXX.cpp。

Windows平台就将XXXX替换成Windows。

这个文件。实现一个GuardedMainWrapper函数,顾名思义,这个函数是对GuardedMain的包装,将GuardedMain用try\catch包装起来。

GuardedMain位于:Runtime/Launch/Private/Launch.cpp。

将整个引擎分为了四个大阶段:引擎预初始(EnginePreInit),引擎初始(EngineInit)。引擎循环(EngineLoop)。引擎退出(EngineExit)。

通过FEngineLoop对象的PreInit,Init,Tick,Exit来实现,參见Runtime/Launch/Private/LaunchEngineLoop.cpp。

在PreInit阶段主要做了:日志功能的启动,线程池的启动,载入了预初始相关的模块,应用程序层面的初始化(ini配置的缓冲的载入,TaskGraph的启动),RHI初始化,异步IO系统初始化,平台特征模块初始化,游戏物理的初始化,流管理初始化。Slate应用程序的创建。启动渲染线程,载入启动模块。

在Init阶段主要做了:引擎的对象的构造。引擎的命令行控制字处理,时间初始化。引擎的详细初始化。

在Tick节点主要做了:開始帧(请求渲染线程的BeginFrame命令、更新时间以及处理最大更新率、更新FPS图表)。重新启动延迟更新(请求渲染线程的ResetDeferredUpdates、消息泵,引擎的详细循环、Shader的异步编译处理),结束帧(请求渲染线程的EndFrame命令)。

在Exit里主要做了:应用程序预退出(线程池的销毁、Shader编译管理的关闭、在线子系统的关闭、结束游戏物理,粒子顶点工厂池释放,运动模糊释放,停止渲染线程。RHI退出。关闭全部的模块。TaskGraph关闭,流管理关闭,异步IO系统关闭。

终于还会调用一个AppExit,AppExit里主要做了:ini配置缓冲的退出。Log的退出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值