UE Actor生命周期
2023/11
09
08:11
从磁盘加载
摆死在关卡中的Actor,当 UEngine::LoadMap 发生时,或当关卡流送调用 UWorld::AddToWorld 时。
- 1.从磁盘加载包/关卡中的Actor。
- 2.序列化的Actor从磁盘加载完成后调用 PostLoad 。所有自定义版本化和修复操作应在此处执行。PostLoad与 AActor::PostActorCreated 互斥。
- 3.世界调用 UAISystemBase::InitializeActorsForPlay ,以准备Actor启动Gameplay。
- 4.关卡为未初始化的Actor和无缝行程结转调用 ULevel::RouteActorInitialize 。
- 5.在Actor的组件上调用InitializeComponent之前调用 AActor::PreInitializeComponents 。
- 6.UActorComponent::InitializeComponent 是Actor上定义的每个组件的创建辅助函数。
- 7.在Actor的组件初始化后,调用 AActor::PostInitializeComponents 。
- 8.关卡启动后,调用 AActor::BeginPlay 。
在编辑器中运行
在”在编辑器中运行(Play in Editor)”路径中,Actor是从编辑器中复制而来,并非从磁盘中加载。然后,复制的Actor按与”从磁盘加载(Load From Disk)”路径中所述的相同流程初始化。
- 将编辑器中的Actor复制到新世界中。
- 调用 UObject::PostDuplicate 。
- UAISystemBase::InitializeActorsForPlay
- 为未初始化的Actor调用 ULevel::RouteActorInitialize ,涵盖无缝行程结转。
- 在Actor的组件上调用InitializeComponent之前调用 AActor::PreInitializeComponents 。
- UActorComponent::InitializeComponent 是Actor上定义的每个组件的创建辅助函数。
- 在Actor的组件初始化后,调用 AActor::PostInitializeComponents 。
- 关卡启动后,调用 AActor::BeginPlay 。
手工创建
- 调用 UWorld::SpawnActor 。
- 在世界中生成Actor后,调用 AActor::PostSpawnInitialize 。
- 已生成Actor创建后为其调用 AActor::PostActorCreated ,所有构造函数实现行为应在此发生。PostActorCreated与PostLoad互斥。
- AActor::ExecuteConstruction :
- AActor::OnConstruction – Actor的构建,蓝图Actor的组件在此处创建,蓝图变量在此处初始化。
- AActor::PostActorConstruction :
- 在Actor的组件上调用InitializeComponent之前调用 AActor::PreInitializeComponents 。
- UActorComponent::InitializeComponent 是Actor上定义的每个组件的创建辅助函数。
- 在Actor的组件初始化后,调用 AActor::PostInitializeComponents 。
- UWorld::OnActorSpawned 在UWorld上播放。
- 调用 AActor::BeginPlay 。
延迟生成
将任意属性设为”生成时公开(Expose on Spawn)”即可延迟Actor生成。
- UWorld::SpawnActorDeferred 旨在生成流程性Actor,允许在蓝图构建脚本之前进行额外设置。
- SpawnActor中的所有操作发生,但在 AActor::PostActorCreated 之后发生以下操作:
- 通过一个有效但不完整的Actor实例设置并调用多个”初始化函数”。
- 调用 AActor::FinishSpawning 以最终确定Actor,在Spawn Actor行中的 AActor::ExecuteConstruction 选取。
CopyRights: The Post by BY-NC-SA For Authorization,Original If Not Noted,Reprint Please Indicate From 老刘@开发笔记
Post Link: UE Actor生命周期
Post Link: UE Actor生命周期