【转载】UE4学习笔记(1)——简单框架

434 阅读2分钟

原文链接:UE4学习笔记(1)——简单框架

前言

纪录自己的 UE4 学习之路

UE4的简单框架

UE 创世,万物皆 UObject,接着有 Actor

继承关系

Uobject

Uobject 是 UE4 中最基础的类,具有 元数据反射生成GC 垃圾回收序列化编辑器可见Class Default Object 等功能。

Actor

Actor 是 UE4 中最基本的场景元素,与 Unity3D 的 gameobject 相似,本身是一个容器,但是与 Unity 不同的是,Actor 没有任何可视化属性甚至连位置属性也没有。但是也是与 Unity 相似,可以挂在多个可视化的组件( Component),以达到各种功能,Actor 也可以有子 Actor。

Actor 继承至 Uobject,多了 Replication(网络复制), Spawn(生生死死),Tick(有了心跳)等功能。

组件(Component)

组件挂在 Actor 身上发挥功能,例如位置组件,Actor 的最终位置来至于他的根组件。组件也可以有根组件。

Pawn

Pawn 是可以被控制的物体,相当于有 controller 的大脑,他可以是交通工具,鱼等,可以默认为生物的基类。

Character

Character人形Actor,继承于 Pawn, 默认拥有一个用于碰撞的胶囊体组件(CapsuleComponent)和运动相关的组件(CharacterMoveMentComponent),并具有一些动画相关的功能。可以认为是人性动物的基类。

控制器(Controller)

控制器用于控制 Pawn 的行为, 一般分为 AIControllerPlayerController 。控制器也是从 Actor 派生的,因此也可以加入到场景中。

PlayerController

玩家控制器。是 Pawn 和控制其的玩家之间的桥梁,PlayerController 代表了人类玩家的意愿。

AIController

用于控制 NPC 的控制器,决定了 NPC 如何与玩家互动。

显示

HUD

UI, 显示玩家的名字,血条,得分等信息。

相机

每个 PlayerConroller 都有一个 PlayerCameraManager ,代表了玩家的视角。

游戏规则和状态

GameMode

游戏模式。处理游戏的规则,只存在与服务器端,因此客户端相关的逻辑不能存放在 GameMode 中。

GameState

游戏状态,记录游戏的数据,比如当前游戏的进度,世界任务的完成状态等,会自动同步到各个客户端。

PlayerState

玩家状态。记录玩家个人的数据,比如名字分数等,会自动同步到各个客户端。

总结

GamePlay 框架使用了 MVC 架构,其中 Pawn 是视图,PlayerState 是数据模型,PlayerController 是控制器。

一个游戏由游戏规则(GameMode)和游戏状态组成(GameState);玩家在游戏里的化身是 Pawn,玩家通过 PlayerConroller 控制着自己的化身,通过 PlayerCameraManager 观察世界,PlayerState 记录了玩家的数据,HUD 显示了这些状态;NPC 则由 AIConroller 去控制,与玩家进行互动。

GameFramework