游戏世界分解
自顶向下的对游戏世界进行分解
GameInstance
游戏一旦开始便产生了一个游戏实例(GameInstance)
他的生命随着游戏程序的开始而建立,随着游戏程序的结束而消亡。
用途:
1.在GameInstance中保存需要初始化的全局变量方便后续应用(全局变量使用请慎重,生命周期长占内存,会造成全局污染,强耦合,且不易管理)
2.编写关卡跳转逻辑
World
表示游戏世界,在可以类比现实世界,包含基本的物理规则与其他信息,世界中所有的对象都要遵循他。
Level
关卡是构成世界的重要部分,如果把World比作地球,可以把Level当做各个国家,所有的Level默认都要遵循World的基本规定,但也可以自定义的更改。
例如,国家规定公共场合不准吸烟,但有的小网吧为了生存则开放了吸烟规则。
Actor
在关卡中可以放置的任何对象都是Actor,在软件设计中,他是作为一种概念存在的,可以理解为一种抽象层次或一种标记或一种身份,由其派生的任何类都携带该身份,表示其可以被置放在场景中,可以被同一化的管理。
Actor虽然可以放置在场景中,但他不一定是可见的,也不一定具有大小,方向等空间信息。
Pawn
继承自Actor,中文翻译为“走卒”,即棋盘中的棋子,在游戏中表示可以被操控的对象,例如游戏世界里玩家控制的角色,那些被机器控制的NPC(非玩家角色)。
Character
继承自Pawn,是一种类人形的走卒,携带着骨骼模型(比如人体的骨架,人的所有动作都是基于骨骼的,不可能一个人的腿可以折叠八次),胶囊体(表示一个范围,用于物理、碰撞检测,例如子弹碰到敌人这件事上,毕竟直接用模型去检测碰撞,太消耗性能,可以用一个或多个盒子,胶囊,球体来表示可碰撞的范围,相对于精细化的模型,在可容忍的范围内,效率是极好的),可移动组件等等。
Controller
类似于MVC中的控制器,作为和“玩家Player”与“受控角色Pawn”之间交互的媒介,像一个路由,其应主要承载交互逻辑(如玩家命令的接受与分发、定义并执行其中的约束),而游戏角色的动作逻辑则交给Pawn去完成。
PlayController
玩家控制器,给玩家用的控制器,承载着用户的交互逻辑,用来控制玩家角色。
AIController
AI控制器,给机器人用的控制器,赋予其“智能”,如游戏中的怪物会追着主角跑。
Gamemode
关于游戏世界的一种数据结构,像是将常用的一些引用组织到一起形成的上下文,其包含
Defalutpawn 默认角色
HUD Class 用户界面
Player Controller玩家控制器
Game State 游戏状态(用于网络联机复制)
Player State 玩家状态(用于网络联机复制)
Spectator 旁观者类
...
每个Level都携带一个Gamemode
如果觉得《UE4 GamePlay架构(入门)》对你有帮助,请点赞、收藏,并留下你的观点哦!