UEC++消亡Actor通知
1、Destroyed函数
调用自身Destroy函数进行强制消亡操作
当对象被删除时(非内存删除)进行回调操作
参数说明
bNetForce 是否强制网络同步删除
bShouldModifyLevel 主要是用来控制先删除actor再修改关卡,还是先修改关卡再删除actor,默认是true,即为先修改关卡,再删除actor(修改关卡即为把actor先移除出场景)
Destroyed();
在Actor中的定义
void AActor::Destroyed() { RouteEndPlay(EEndPlayReason::Destroyed); ReceiveDestroyed(); OnDestroyed.Broadcast(this); }
Actor被标记为等待销毁并从关卡的Actor阵列中移除。
SetLifeSpan函数
// 两秒后销毁 SetLifeSpan(2);
设置延时删除(单位秒)
注:这里的 Destroy 和 SetLifeSpan 函数直接调用都是销毁自身
2、EndPlay函数
对象被彻底清除时回调,回调会进行删除类型通知
virtual void EndPlay(const EEndPlayReason::Type EndPlayReason);
EEndPlayReason类型 既删除类型
UENUM(BlueprintType) namespace EEndPlayReason { enum Type { /** 当actor或是component彻底被删除时(内存中) */ Destroyed, /** 关卡切换时删除回调(非关卡流) */ LevelTransition, /** 编辑器关闭时,回调通知 */ EndPlayInEditor, /** 关卡流切换被释放时调用 */ RemovedFromWorld, /** 游戏退出时被删除回调 */ Quit, }; }