五个最常见基类

  • UObject
  • Actor
  • Pawn
  • Controller
  • Character

UObject类

  • 垃圾收集
  1. 继承自UObject类,同时指向UObject类实例对象的指针成员变量,使用UPROPERTY宏进行标记。虚幻引擎的UObject架构会自动地被Uproperty标记的变量考虑到垃圾回收系统中,自动地进行对象的生命周期管理。
  2. 采用智能指针。只有非UObject类型,才能够使用智能指针进行自动内存释放。
  • 反射
  • 序列化
  1. 一个类的对象保存到磁盘,同时在下次运行时完好无损地加载,需要继承自UObject类。
  2. 可以通过纯c++类手动实现序列化所需地函数,来让这个类支持序列化功能,这并不是UObject类独有的。
  • 与虚幻引擎编辑器的交互
  • 运行时类型识别
  1. 虚幻引擎打开了/GR-编译器参数,无法使用C++标准的RTTI机制:dynamic_cast。
  2. 希望使用,继承自UObject,然后使用Cast<>函数来完成。
  • 网络复制

UObject类会在引擎加载阶段,创建一个Default Object默认对象:

  1. 构造函数并不是在游戏运行的时候调用,即便只有一个UObject对象存在于场景中,构造函数依然会被调用两次。
  2. 构造函数被调用的时候,UWorld不一定存在。GetWorld()可能为空。

Actor类

Actor类的能力:能够被挂在组件。

虚幻引擎中:

  1. 一个场景实体对应一个类
  2. Component的含义被大大削弱,只是组件,不能越俎代庖

坐标与旋转量,只是一个Scene Component组件,如果Actor不需要一个固定位置(Manager),甚至可以不给Actor挂载Scene Component组件。

  • Actor被渲染?给一个静态网格组件。
  • Actor有骨骼动画?给一个骨架网格物体组件。
  • Actor能移动?直接在Actor类中写代码来实现,也可以附加一个Movement组件专门处理移动。

需要挂载组件的时候,才应该继承自Actor。

Pawn

Pawn类提供了被“操作”的特性,能够被一个Controller操纵,这个Controller可以是玩家,也可以是AI。

Character

Character类代表一个角色,继承自Pawn类。

Character类提供了一个特殊的组件,Character Movement。这个组件提供了一个基础的、基于胶囊体的角色移动功能。

Controller

Controller操纵着Pawn和Character的行为,可以是AI,AI Controller类,在这个类中使用行为树或EQS环境查询系统。

转载于:https://www.cnblogs.com/suomeimei/p/10722347.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值