本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!