UE Actor生命周期

简介: UE Actor生命周期

生命周期流程图

Actor生命周期如上图所示,主要包括以下:

在关卡中实例化或生成Actor,包括如何初始化Actor。

将Actor标识为PendingKill,然后通过垃圾回收移除或销毁。

其实,从上图可以看出不管Actor是如何创建的,最终销毁路径都相同。

Actor生成方式

关于Actor的生成方式,有三种:

1.从磁盘加载

2.在编辑器中运行

3.生成/延迟生成

Actor生命周期终点

这个有多种方式销毁Actor,但是从世界中删除它们的方式是一样的。事实上,大部分Actor在运行中不会实际销毁,可以看垃圾回收。

需要删除某个Actor时,手动调用AActor::Destroy,这时候GamePlay仍在继续。Actor被标记为等待销毁并从关卡的Actor数组中移除。

垃圾回收

一个对象被标记待销毁的一段时间后,垃圾回收会将其从内存中移除,释放其使用的资源。

在销毁过程中,调用以下函数:

  1. UObject::BeginDestroy
  2. UObject::IsReadyForFinishDestroy
  3. UObject::FinishDestroy

高级垃圾回收

创建子对象。将对象与其子对象组合到垃圾回收器的单个群集后,引擎可延迟释放群集使用的资源,直到整个对象可被释放时一次性释放全部资源。

多数项目中无需对垃圾回收进行配置或修改,但存在一些特定情况 - 可以如下方式对垃圾回收器的"集群"行为进行调整,以提高效率:

群集处理(Clustering) - 关闭集群。在 项目设置(Project Settings) 中的 垃圾回收(Garbage Collection) 部分下,可将 创建垃圾回收器UObject群集(Create Garbage Collector UObject Clusters) 选项设为 false。对多数项目而言,此操作将导致垃圾回收效率降低,因此只建议在性能测试证明其绝对有益的情况下使用。

小结

其实,生命周期主要包括了生成(SpawnActor),初始化数据,生命周期结束(Destroy),垃圾回收/高级垃圾回收。从这几个过程可以总结出来大部分的物体的生命周期也都是这个过程。学习到了Actor的,其他地方遇到这种类型的方式,直接套用就好了。就像android的生命周期,或者unity的生命周期,也可以用这种方式来表示下。大概逻辑是一样的,细节有些不同。

相关文章
|
25天前
|
机器学习/深度学习 人工智能 算法
基于 YOLOv8 的太阳能电池片缺陷智能检测识别实战 [目标检测完整源码]
基于YOLOv8的太阳能电池片缺陷检测系统,融合深度学习与PyQt5可视化界面,实现裂纹、断栅等缺陷的高精度识别。具备实时检测、多源输入、模型一键加载等功能,支持产线部署,助力光伏制造智能化质检,提供从算法到工程落地的完整解决方案。
85 10
基于 YOLOv8 的太阳能电池片缺陷智能检测识别实战 [目标检测完整源码]
|
人工智能 关系型数据库 Serverless
1024,致开发者们——希望和你一起用技术人独有的方式,庆祝你的主场
阿里云开发者社区推出“1024·云上见”程序员节专题活动,包括云上实操、开发者测评和征文三个分会场,提供14个实操活动、3个解决方案、3 个产品方案的测评及征文比赛,旨在帮助开发者提升技能、分享经验,共筑技术梦想。
1933 160
|
机器人 人机交互 vr&ar
实战 | 实时手部关键点检测跟踪(附完整源码+代码详解)
实战 | 实时手部关键点检测跟踪(附完整源码+代码详解)
|
机器学习/深度学习 数据采集 人工智能
从零开始构建大语言模型(MEAP)(1)
从零开始构建大语言模型(MEAP)
980 1
|
程序员 定位技术 图形学
程序员必知:关于Unity中的道具拾取(专题六)
程序员必知:关于Unity中的道具拾取(专题六)
428 0
|
Java
Java中如何定义一个线程工厂?
在Java中,线程工厂(ThreadFactory)用于自定义线程的创建,通过实现ThreadFactory接口可定义线程的属性和命名规则。示例代码展示了如何创建一个自定义线程工厂,如设置线程名称和优先级。使用时,通过线程工厂的`newThread()`方法创建并启动线程,便于统一管理和配置线程,满足特定需求。
376 0
|
存储 安全 NoSQL
【C++ 异常 】深入了解C++ 异常机制中的 terminate()处理 避免不必要的错误(二)
【C++ 异常 】深入了解C++ 异常机制中的 terminate()处理 避免不必要的错误
1124 1
UE5 Chaos破碎系统学习1
UE5 Chaos破碎系统学习1
557 0
UE5 Chaos破碎系统学习1
|
Linux 网络安全
配置Linux服务器时间同步
配置Linux服务器时间同步
配置Linux服务器时间同步