UE4《GamePlay框架综述》
发布日期:2021-06-29 12:04:32 浏览次数:2 分类:技术文章

本文共 1288 字,大约阅读时间需要 4 分钟。

参考链接:

大钊老师的《InsideUE4》专栏

目录


 

1.基础子类

UObject:

所有类都是继承于UObject的。

主要支持功能:

  • 反射生成
  • GC垃圾回收
  • 序列化
  • 编辑器可见

Actor:

直接继承自UObject,是UE4中最基础的元素。类似于Unity3D中的GameObject与Cocos2d-x的Node。

主要扩展功能:

  • Replication(网络复制)
  • Spawn(生生死死)
  • Tick(有了心跳)。

Actor也可以理解为一个Componment容器,任意Componment融合可以组成不同的Actor千变万化。

Componment

就是Actor的技能,不同技能可以组成不同的Actor,随开发者自由发挥。

Level

一个或多个Level组成一个World。用于Actor的组织管理。也可以称作Scene或map。例如:创奇游戏的白日门,盟重省,武士村,海边沙漠,兽人古墓都可以作为Level。

这里有个有趣的地方就是,对于Level的设置名字叫做WorldSetting。具体原因有兴趣的可以去看大钊老师的教程。

World

一个或多个Level组合起来就是World。组合方式有SubLevel和WorldComposition。

WorldContext

很容易陷入 误区的是:误以为一个游戏只有一个世界。首先World就不是只有一种类型,比如编辑器本身就也是一个World,里面显示的游戏场景也是一个World,这两个World互相协作构成了我们的编辑体验。然后点播放的时候,引擎又可以生成新的类型World来让我们测试。简单来说,UE其实是一个平行宇宙世界观。

这个可以参照UE的枚举EWorldType 。而UE用来管理和跟踪这些World的工具就是WorldContext。

Pawn

继承自Actor,主要扩展功能:

  • 可被Controller控制
  • PhysicsCollision表示
  • MovementInput的基本响应接口

Controller

也是直接继承于AActor,Controller与Pawn为一对一的关系。如果针对RTS游戏这样需要一个Controller控制多个Pawn的情况则需要自己编写代码扩展。

GameMode

GameMode继承于AInfo的子类。高于Controller一层的领导。主要扩展功能有:

  • Class登记
  • 游戏内实体的Spawn
  • 游戏的进度
  • Level的切换
  • 多人游戏的步调同步

GameState

GameState也是从AInfo中继承:用于保存当前游戏的状态数据。

Player

与AActor一样继承于UObject。区别在于AActor必须在World中才能存在。Player却是比World更高层级的对象。

GameInstance

那么这些WorldContexts又是保存在哪里的呢?追根溯源:GameInstance里会保存着当前的WorldConext和其他整个游戏的信息。开发中将那些独立于Level的逻辑或数据在GameInstance中存储。

2.总框架图

 

转载地址:https://blog.csdn.net/zzZZ20150101/article/details/112043290 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:《乌龙特工》观后感
下一篇:为2021年我立下的Flag

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月02日 21时53分05秒