游戏逻辑编程

基本游戏性元素、Actor 和 对象 的解释。

Windows
MacOS
Linux

此文档将大概讲述引擎的核心功能,介绍一些核心架构概念,助您了解基本代码。

UObjects 和 Actors

Actors 是由 AActor 类派生而来的类实例;能被放入游戏世界场景的所有游戏性对象的基础类。对象 是继承自 UObject 类的类实例;虚幻引擎中所有对象的基础类,包括 Actor。因此,实际上虚幻引擎中所有的实例均为对象;然而,术语 Actors 通常用于指代在层级中继承自 AActor 的类实例,而术语“对象”用于指代非继承自 AActor 类的类实例。您创建的类多数均在其层级中的某个点继承自 AActor

总体而言,Actor 可被看做整体物体或实体,而对象则为更细节化的部件。Actor 经常使用作为细节化对象的 组件,对其功能的特定方面进行定义,或为属性合集保存数值。用汽车作为例子。汽车作为整体是一个 Actor,而汽车的部件(如轮子和车门)则都是该 Actor 的组件。

游戏性框架类

基本的Gameplay类包括用于表示玩家、盟友和敌人的功能,以及通过玩家输入或AI逻辑控制这些化身的功能。还包括为玩家创建 抬头显示和摄像机的类。总之,Gameplay类(如**游戏模式游戏状态玩家状态**)可用于设置游戏规则,并追踪游戏和玩家的进展情况。

这些类创建所有类型的Actor,它们可以放置在关卡中,也可以在在需要时生成。

在世界场景中表示玩家、好友和敌人

pawn_lander.png

Pawn

Pawn是可作为世界场景中“代理”的Actor。Pawn可被控制器所有,且可将其设置为易于接受输入,用于执行各种各样类似于玩家的任务。请注意,Pawn不被认定为具有人的特性。

角色(Character)

角色是类人式的Pawn。默认情况下,它带有一个用于碰撞的胶囊组件和一个角色移动组件。它可以执行类似人类的基本动作,可以流畅地复制网络上的动作,还具有一些与动画相关的功能。

使用玩家输入或AI逻辑控制Pawn

controller_lander.png

控制器(Controller)

控制器是负责定向Pawn的Actor。它们通常有两种风格:AI控制器和玩家控制器。一个控制器可以“拥有”一个Pawn来控制它。

玩家控制器

PlayerController(玩家控制器)是Pawn和控制Pawn的人类玩家之间的界面。玩家控制器基本上代表人类玩家的意愿。

AI控制器

AI控制器和听起来一样;可以控制Pawn的模拟“意愿”。

向玩家显示信息

camera_lander.png

HUD

HUD是指“抬头显视”或二维屏幕显示,在许多游戏中较为常用。例如显示血条、弹药指示器、枪准星等。每个玩家控制器通常都配有其中一种显示。

摄像机(Camera)

玩家摄像机管理器是玩家的“眼球”,负责管理它的行为。通常情况下,每个玩家控制器也有一个此类型的摄像机。请参见摄像机工作流程页面,了解更多信息。

设置并追踪游戏的规则

hud_lander.png

游戏模式

“游戏”的概念分为两类。Game Mode 和 Game State是游戏的定义,包括游戏规则和获胜条件等内容。它仅存在于服务器上。它通常不应有太多在游戏过程中会发生变化的数据,也绝对不应有客户端需要了解的临时数据。

游戏状态

GameState包含游戏的状态,其中可以包括联网玩家列表、得分、棋类游戏中棋子的位置,或者在开放世界场景中完成的任务列表。游戏状态存在于服务器和所有客户端上,可以自由复制以保持所有机器处于最新状态。

玩家状态

玩家状态 是游戏玩家的状态,例如人类玩家或模拟玩家的机器人。作为游戏的一部分而存在的非玩家AI将不会拥有玩家状态。在玩家状态中适当的示例数据包括玩家姓名或得分、比赛中MOBA等的等级,或玩家当前是否在CTF游戏中携带旗帜。所有玩家的玩家状态存在于所有机器上(与玩家控制器不同),并且可以自由复制以保持同步。

框架类关系

此流程图说明了这些Gameplay类是如何相互关联的。游戏由游戏模式和游戏状态组成。加入游戏的人类玩家与玩家控制器相关联。 这些玩家控制器允许玩家在游戏中拥有Pawn,这样他们就可以在关卡中拥有物理代表。玩家控制器还向玩家提供输入控制、抬头显示(HUD), 以及用于处理摄像机视图的玩家摄像机管理器。

GameFramework.png

有关Gameplay框架类的更多信息,请参阅Gameplay框架

想要在 UE4 中开始编程的道路,还可以去我们 编程快速入门 页面和其他页面 C++编程教程 看看。

Select Skin
Light
Dark

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见