由于工作需要,需要学习UE4引擎C++,网上好的教程很多,但是自己总觉得没有抓到重点,其实只要抓住虚幻C++中最核心的5个类,提纲挈领的学习,就能更好的理解,这个5个类为
- UObject
- Actor
- Pawn
- Charactor
- Controller
UObject是所有引擎层面,游戏层面对象的基类
何时需要继承UObject类?
在我们使用UObject提供的功能时,我们需要从这个类派生我们的子类,它的功能如下:
- 垃圾回收 garbage collection
- 引用自动更新 Reference updating
- 反射 Reflection
- 序列化 Serialization
- 默认属性变化自动更新 Automatic updating of default property changes
- 自动属性初始化 Automatic property initialization
- 与虚幻引擎编辑器的自动交互 Automatic editor intergration
- 运行时类型识别 Type information available at runtime
- 网络复制 Network replication
Actor
能够放置在场景中且可以挂载组件的东西都是Actor或其子类,Actor派生自UObject
注意:虚幻中所有组件(Component)都是U开头而不是A开头,所以组件是派生自UObject的
Pawn(卒)
人生如棋,我愿为卒,行动随慢,可曾见我后退一步(虚幻如棋,Pawn亦为卒)
象棋中的卒很形象的说明了,Pawn类的特性(被操作性),他可以被一个Controller操纵,Controller 可以是玩家,也可以是AI,不管玩家还是AI 都像一个棋手在操纵这Pawn,一旦离开棋手就无法自主行动
Character(角色,玩家)
它派生自Pawn类,它在Pawn类的基础上提供了一个Character Movement的特殊组件,这个组件提供了基础的基于胶囊体的角色移动,跳跃,如果需要你还可以 蹲伏 爬行,适用于很多游戏角色