UE4 基础类

目录

UObject

AActor

UActorComponent

APawn

AController

代码规范


UObject

所有对象类的基础类-AActorUActorComponent

  • Garbage collection垃圾回收,对象可能被多个其他对象引用,在不需要使用的时候释放内存,可能产生野指针。
  • 使用UPROPERTY宏进行标记,此类变量会被放进垃圾回收系统中,自动进行对象生命周期的管理。
  • UCLASS宏可用于标记从UObject派生的类,使UObject处理系统识别到它们。

AActor

AActor是所有Actor的基础类,AActor中有一个RootComponent成员,用来保存组件树中的顶级组件,Actors 本身没有变换,所以它们不具有位置、旋转度、 或缩放比例信息。但是,它们可以依赖于它们组件的变换;更确切地讲,是它们的根组件

AActor包含在AActor生命周期中调用的一系列事件。

  • BeginPlay——对象首次在Gameplay中存在时调用。
  • Tick——每帧调用一次,随着时间的进行持续完成工作。
  • EndPlay——对象离开Gameplay空间时调用。

 能够挂载组件(UComponent) 

  • Scene Component:坐标和旋转量
  • 静态网格体组件:Actor被渲染
  • Movement Component:移动

  

UActorComponent

所有Component的基类,Component(组件)是一种特殊类型的对象,不可单独存在,旨在用作Actor中的子对象。

  • ActorComponent不能互相嵌套,而在SceneComponent一级才可以嵌套;
  • Actor更像是一个容器,只提供了基本的创建、销毁、复制网络和触发事件等逻辑性的功能,而把父子的关系维护都交给了具体的Component。

APawn

APawn继承AActor,物理表示和基本的移动能力,他可以被player 或 AI拥有,可以被Controller操纵

  • ADefaultPawn:默认。
  • ASpectatorPawn:派生于DefaultPawn,观战。
  • ACharacter:人形,继承APawn,多了一个Character Movement组件。拥有mesh, collision 和内置移动逻辑的Pawn。它们负责玩家和AI和世界之间的所有物理交互,以及负责实现基本的网络和输入模型。

AController

操纵Pawn的行为
AI Controller:行为树/EQS
Player Controller:绑定输入,转化成对Pawn的指令。通过Posses/UnPosses来控制or解除控制。

  • Pawn重点在于动这个行为。而Controller代表的是动到“哪里”,重点在于“方向”。所以如果是一些Pawn本身固有的能力逻辑,如前进后退、播放动画、碰撞检测之类的就完全可以在Pawn内实现;而对于一些可替换的逻辑,或者智能决策的,就应该归Controller管辖。
  • 如果一个逻辑只属于某一类Pawn,放进Pawn内。而如果一个逻辑可以应用于多个Pawn,那么放进Controller就可以组合应用了。
  • Controller的生命期比Pawn要长一些,比如我们经常会实现的游戏中玩家死亡后复活的功能。Pawn死亡后,这个Pawn就被Destroy了,就算之后再Respawn创建出来一个新的,但是Pawn身上保存的变量状态都已经被重置了。

代码规范

  1. F- 纯c++类
  2. U- 继承自UObject
  3. A- 继承自Actor
  4. S- Slate控件相关类,继承SWidget
  5. H- HitResult相关类
  6. T-模板类
  7. I-抽象界面类
  8. E-列举
  9. b-bool

命名(如类型或变量)中的每个单词需大写首字母,单词间通常无下划线。例如:Health 和 UPrimitiveComponent,Unreal Header Tool 会在编译前检查类名,如果有错则警告并停止编译。

常量:

  • 若函数不修改参数,常量指针或引用将传递函数参数,
  • 若方法不修改对象,将方法标记为常量。
  • 若循环不修改容器,则在容器上使用常量迭代。

大括号固定被放在新行。

if-else语句中的所有执行块都应该使用大括号。

文件名应尽量不添加前缀。例如使用 Scene.cpp,而非 UnScene.cpp

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值