简介: 今天在翻文章的时候接触到一个概念, GamePlay Framework ,是 UE 的核心框架,它包含了一系列的类,来帮助我们快速构建自己的游戏,感觉这个应该对了解源码有不小的帮助,记录一下
相关资料 在知乎上找 大钊 老师可以看到不少的相关文章,貌似是 UE 的中华区经理。快速链接
框架大图
官方文档地址,有时候可能打不开 T—T!!
官方图很大,可以下载下来放大看,或者去官方文档搜索 Gameplay Framework
核心类
-
Actor 感觉类似于Unity 的 GameObject
-
Pawn 是Actor的一个子类,代表一个可以被玩家或AI控制的实体。Pawn 是角色和车辆等可移动对象的基础类。
- Character Character 是Pawn的一个子类,增加了对骨骼网格、角色移动和动画的支持,通常用于定义人类或类似的可控制角色。
- Controller 是一个Actor,用于控制Pawn的行为。它可以是玩家控制器。他有两个子类 PlayerController 和 AIController
-
Pawn 是Actor的一个子类,代表一个可以被玩家或AI控制的实体。Pawn 是角色和车辆等可移动对象的基础类。
-
Component 感觉类似 Unity 的 MonoBehaviour,可以附加到 Actor 上
看 大钊 老师的文章,貌似 UE 也是在 5.4 时候参考了 Unity 来重做的这部分,之前 所有的功能都是在 Actor 内的, -
Level 类似于 Unity 的Scene,里面可以包含各种 Actor
-
World 这个不是很好类比,就是比 Level 更大的范围,代表游戏世界
-
WorldContext 这个更不好类比,T——T,就是用来处理多 World 的
-
PlayerState是与Player相关的类,用于存储该玩家在游戏过程中的状态信息。它通常包括分数、生命、队伍信息等。与PlayerController不同,PlayerState的数据在服务器和所有客户端之间同步。它在多人游戏中尤其重要,因为它允许所有玩家看到其他玩家的状态变化。在实际开发中,PlayerState可以与GameState配合使用,提供所有玩家状态的全局视图。
-
GameMode 定义了游戏的规则、胜负条件以及玩家进入游戏时的逻辑。它通常在服务器端运行
-
GameState 是用于同步所有客户端的游戏状态的类。它包含了有关比赛当前状态的信息,如比分、时间等。
-
GameInstance 是整个游戏会话的单例对象。它存在于整个应用程序的生命周期内,用于在关卡之间传递数据,并存储游戏的持久数据。
-
Engine 是Unreal的核心类,负责管理游戏循环、渲染、物理、音频等所有底层系统。
-
Player 类是玩家的抽象,通常通过PlayerController与之交互。涉及到玩家的控制、输入处理、网络连接管理。
-
Subsystems 是一种模块化的系统管理框架。Subsystem存在于游戏的不同层级(如GameInstanceSubsystem、WorldSubsystem),用于在不同的生命周期内管理游戏功能。
关系图与流程图
关系图
流程图









网友评论