Choose your operating system:
Windows
macOS
Linux
此文档将大概讲述引擎的核心功能,介绍一些核心架构概念,助你了解基本代码。
UObject 和 Actor
Actors
是由
AActor
类派生而来的类实例;能被放入游戏世界场景的所有游戏性对象的基础类。
对象
是继承自
UObject
类的类实例;虚幻引擎中所有对象的基础类,包括 Actor。因此,实际上虚幻引擎中所有的实例均为对象;然而,术语
Actors
通常用于指代在层级中继承自
AActor
的类实例,而术语"对象"用于指代非继承自
AActor
类的类实例。你创建的类多数均在其层级中的某个点继承自
AActor
。
总体而言,Actor 可被看做整体物体或实体,而对象则为更细节化的部件。Actor 经常使用作为细节化对象的 组件 ,对其功能的特定方面进行定义,或为属性合集保存数值。用汽车作为例子。汽车作为整体是一个 Actor,而汽车的部件(如轮子和车门)则都是该 Actor 的组件。
游戏性框架类
基本的Gameplay类包括用于表示玩家、盟友和敌人的功能,以及通过玩家输入或AI逻辑控制这些化身的功能。还包括为玩家创建 抬头显示和摄像机的类。总之,Gameplay类(如**游戏模式 、 游戏状态 和 玩家状态**)可用于设置游戏规则,并追踪游戏和玩家的进展情况。
这些类创建所有类型的Actor,它们可以放置在关卡中,也可以在在需要时生成。
在世界场景中表示玩家、好友和敌人
Pawn |
Pawn 是可作为世界场景中"代理"的Actor。Pawn可被控制器所有,且可将其设置为易于接受输入,用于执行各种各样类似于玩家的任务。请注意,Pawn不被认定为具有人的特性。 |
角色(Character) |
角色 是类人式的Pawn。默认情况下,它带有一个用于碰撞的胶囊组件和一个角色移动组件。它可以执行类似人类的基本动作,可以流畅地复制网络上的动作,还具有一些与动画相关的功能。 |
使用玩家输入或AI逻辑控制Pawn
控制器(Controller) |
控制器 是负责定向Pawn的Actor。它们通常有两种风格:AI控制器和玩家控制器。一个控制器可以"拥有"一个Pawn来控制它。 |
玩家控制器 |
PlayerController(玩家控制器) 是Pawn和控制Pawn的人类玩家之间的界面。玩家控制器基本上代表人类玩家的意愿。 |
AI控制器 |
AI控制器和听起来一样;可以控制Pawn的模拟"意愿"。 |
向玩家显示信息
HUD |
HUD 是指"抬头显视"或二维屏幕显示,在许多游戏中较为常用。例如显示血条、弹药指示器、枪准星等。每个玩家控制器通常都配有其中一种显示。 |
摄像机(Camera) |
玩家摄像机管理器是玩家的"眼球",负责管理它的行为。通常情况下,每个玩家控制器也有一个此类型的摄像机。请参见 摄像机工作流程 页面,了解更多信息。 |
设置并追踪游戏的规则
游戏模式 |
"游戏"的概念分为两类。 Game Mode 和 Game State 是游戏的定义,包括游戏规则和获胜条件等内容。它仅存在于服务器上。它通常不应有太多在游戏过程中会发生变化的数据,也绝对不应有客户端需要了解的临时数据。 |
游戏状态 |
GameState 包含游戏的状态,其中可以包括联网玩家列表、得分、棋类游戏中棋子的位置,或者在开放世界场景中完成的任务列表。游戏状态存在于服务器和所有客户端上,可以自由复制以保持所有机器处于最新状态。 |
玩家状态 |
玩家状态 是游戏玩家的状态,例如人类玩家或模拟玩家的机器人。作为游戏的一部分而存在的非玩家AI将不会拥有玩家状态。在玩家状态中适当的示例数据包括玩家姓名或得分、比赛中MOBA等的等级,或玩家当前是否在CTF游戏中携带旗帜。所有玩家的玩家状态存在于所有机器上(与玩家控制器不同),并且可以自由复制以保持同步。 |
框架类关系
此流程图说明了这些Gameplay类是如何相互关联的。游戏由游戏模式和游戏状态组成。加入游戏的人类玩家与玩家控制器相关联。 这些玩家控制器允许玩家在游戏中拥有Pawn,这样他们就可以在关卡中拥有物理代表。玩家控制器还向玩家提供输入控制、抬头显示(HUD), 以及用于处理摄像机视图的玩家摄像机管理器。
有关Gameplay框架类的更多信息,请参阅 Gameplay框架 。