美文网首页
Unreal 加载流程

Unreal 加载流程

作者: 百思不得Ting姐 | 来源:发表于2021-06-23 16:04 被阅读0次

Launch模块的Launch.cpp里GuardedMain为通常意义的Main函数,这里有游戏循环;

在这个函数里,首先调用GEngineLoop.PreInit(),这个函数完成所有底层模块和自定义模块以及插件的加载(这些模块被定义为早期加载);

然后调用GEngineLoop.Init(),这里生成了Engine实例,调用engine实例的Init()方法,然后加载了晚期模块和插件,然后又调用Start()方法;

在engine.Init()方法内部主要工作:创建GameInstance、GameViewportClient、LocalPlayer实例;

在engine.Start()方法内部主要工作:调用LoadMap()方法;

在engine.LoadMap()方法内部主要工作:

1、加载map包,生成UWorld,包括level、actor等;

2、调用UWorld的一些方法,如InitWorld(),这个方法配置物理、AI、声音等;还有SetGameMode()方法,这个方法生成了GameMode

3、加载始终要加载的子level;

4、调用world.InitializeActorsForPlay()方法,主要工作:

       ①、注册所有actor的component,并且,如果component是primitivecomponent类型,还会创建FprimitiveSceneProxy对象,该对象属于FScene(UWorld在渲染线程里的对应版本);

        ②、调用gameMode.InitGame(),生成GameSession对象;

        ③、循环调用所有level的RouteActorInitialize()方法,这里完成所有actor的初始化,其中GameMode也属于actor,因此会GameMode也会得到初始化,这时候会产生GameState对象;

 5、产生player;上文提到的LocalPlayer是引擎模块的,对应的在游戏模块里为APlayerController,这个过程产生playercontroller,并且产生spawn;

6、调用world.BeginPlay()方法;

相关文章

  • Unreal 加载流程

    Launch模块的Launch.cpp里GuardedMain为通常意义的Main函数,这里有游戏循环; 在这个函...

  • Cesium for Unreal加载本地3DTiles坐标轴错

    原文地址:Cesium for Unreal加载本地3DTiles坐标轴错乱问题[https://webgpu.i...

  • Android WebView 优化汇总

    目录 引言:Html加载流程 加载流程各节点耗时分析优化 加载流程结构优化 客户端优化 Html加载流程 创建并初...

  • Lighting视频

    Lighting with Unreal Engine Masterclass | Unreal Dev Day ...

  • layout加载流程

    Activity的setContentView加载流程 注意:加载流程没有执行view绘制流程 1、ACtivit...

  • iOS底层原理19:类和分类的加载

    前面已经探究了类的加载流程,类分为懒加载类和非懒加载类,他们有不同加载流程,下面来探究下分类的加载,以及分类和类搭...

  • iOS深入剖析【离屏渲染】原理

    离屏渲染与正常渲染 屏幕上最终显示的数据有两种加载流程 正常渲染加载流程 离屏渲染加载流程 从图上看,他们之间的区...

  • 四、离屏渲染

    离屏渲染与正常渲染 屏幕上最终显示的数据有两种加载流程 正常渲染加载流程 离屏渲染加载流程离屏渲染与正常渲染 常⻅...

  • Tomcat 服务器启动时序图

    启动流程 Catalina 加载流程 Catalina 初始化流程 Catalina 启动流程 应用部署流程 原文...

  • 离屏渲染

    屏幕上最终显示的数据有两种加载流程 正常渲染加载流程离屏渲染加载流程 从图上看,他们之间的区别就是离屏渲染比正常渲...

网友评论

      本文标题:Unreal 加载流程

      本文链接:https://www.haomeiwen.com/subject/dhfbyltx.html