一些术语
项目以
. uproject 文件形式存在
UObject是所有对象(Object)的基类,类(Class)用于定义 虚幻引擎中Actor或对象的行为和属性。此处可以按照于c++的对象思想理解。
Actor指所有可以放入关卡的对象, AActor是所有Actor的基类。 比如摄像机、静态网格体、玩家起始位置。
类型转换(Casting)所转换的是特定Actor(或类)的类,转换后可以当作目标类访问它的函数和功能
组件(Component) 指添加在Actor上的一项功能,不能单独存在。
Pawn 是Actor的子类,指游戏中的角色个体(玩家角色或npc)。该类有两种状态来表示是否被控制; 已被控制(Possessed)和 未被控制(Unpossessed)。
角色(
Character) 是Pawn Actor的子类,指玩家角色。有碰撞,运动等代码。
玩家控制器(Player Controller) 获取玩家输入游戏的信息,再传递给角色实现玩家对角色的控制操作。 每个游戏中至少有一个玩家控制器。对应的类为 PlayerController。
对应地npc也有自己的控制器, AI控制器 通过控制Pawn来表示游戏中的npc,对应的类为 AIController
游戏模式(GameMode) 类制定了当前游戏的规则:
-
玩家如何加入游戏。
-
是否可以暂停游戏。
-
任何与游戏相关的行为,例如获胜条件。
对应的类 GameMode
玩家状态(Player State)指参与游戏的玩家(人类玩家或ai玩家)的状态:
-
名称
-
当前关卡
-
生命值
-
分数
-
在某些抢旗游戏中,玩家当前是否携带旗子。
对应的类为PlayerState。
游戏状态( GameState)是个容器,保存着该场比赛的信息:
-
游戏分数
-
比赛是否已开始
-
根据场景中玩家的人数,需要生成多少AI
由服务器下发给客户端。对应的类 GameState。
笔刷(Brush)是种Actor,描用来描述3d空间中的几何体
体积(Volumes) 是一块3D空间,存在边框限制。会根据施加给它们的效果产生不同的用途。例如:
-
阻挡体积(Blocking Volumes),一种不可见的体积,用来防止Actor穿过它们。
-
伤害生成体积(Pain Causing Volumes),会对进入它们的Actor产生持续性的伤害。
-
触发体积(Trigger Volumes),可以通过编程,让Actor在进入或离开它们是触发事件。
关卡(
Level) 指游戏区域。包含了玩家能看到的所有内容,可以称为地图。以 .umap 文件形式存在于编辑器中。
世界场景(
World) 是个容器,包含关卡,并处理关卡间的流转,并能创建actor。
打包游戏
在文件->打包项目->选择对应系统后,等待打包完成就可以了。这里选了Windows10平台,打包后产生的文件目录为:
pak文件位于 [项目名]/Content/Paks/"