因为项目需要提供一些关于引擎的架构之类的东西,经过整理,完成下面的一些内容,没有什么逻辑性,仅仅为了搜集架构相关的图片,如果你们也刚好需要,请自取。
游戏流程总览
此文档解释启用引擎和运行游戏的过程。此处说明两种主要路径:编辑器路径、
standalone
路径。事件的一般顺序为初始化引擎、创建并初始化
GameInstance
、加载关卡,最后开始游戏。然而在部分被调用函数的准确排序和函数被调用的位置方面,
standalone
模式和编辑器模式之间存在差异。以下流程图展示两个平行运行的路径,它们在游戏开始之前汇聚。
Standalone
在
Standalone
模式中(在编辑器外进行的游戏使用该模式),引擎启动和初始化之后将立即对进行游戏所需的对象进行创建和初始化。诸如
GameInstance
之类的对象在引擎启用之前被创建和初始化(与创建和初始化引擎不同)。引擎的启动函数被调用后,将立即加载初始地图。关卡创建适当的
Game Mode
和 GameState
,然后创建其他
Actor
后,游戏进程便正式开始。
编辑器
编辑器模式由
Play In Editor
和
Simulate In Editor
使用,流程完全不同。引擎立即初始化并启动,因为需要它运行编辑器,但诸如
GameInstance
之类对象的创建和初始化将被延迟,直到玩家按下按钮启动
PIE
或
SIE
会话。此外,关卡中的
Actor
将被复制,使游戏中的变更不影响编辑器中的关卡,每个对象(包括
GameInstance
)均有每个
PIE
实例的单独副本。在
UWorld
类中游戏进程开始时,编辑器路径和
standalone
路径再次结合。
流程图:
Actor生命周期:
架构中类的关系
这个流程图解释了这些核心游戏类之间的关系。一个游戏由
GameMode
和
GameState
构成。加入游戏的人类玩家同
PlayerController
相关联。
这些
PlayerController
允许玩家在游戏中占有
pawn
,以便它们在游戏中有物理表示。
PlayerController
也为玩家提供了输入控制、平头显示信息或
HUD
、
及处理相机视图的
PlayerCameraManager
。
使用
C++
代码进行游戏性元素编程时,每个模块会包含许多
C++
类。
每个类定义新
Actor
或对象的模板。类头文件中声明了类、类
函数
和类
属性
。类还包含
结构体
这种有助于进行相关属性组织和操作的数据结构。结构也可被自行定义。通过
接口
可以使不同的类应用额外的游戏性行为。
在虚幻
4
中,通过整洁的组件继承便能创建复合游戏物体。