Appearance
Actor的创建与删除
创建
在.h文件中可以写:
cpp
UPROPERTY(VisibleAnywhere, Category="Cube")
// 非基本类型需要加上星号作为指针类型
UStaticMeshComponent* Cube;
在.cpp文件中写:
cpp
Cube = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Cube"));
RootComponent = Cube;
创建生命周期
1、构造函数调用
2、初始化成员变量
3、如有蓝图,则初始化蓝图数据
4、构件组件
5、BeginPlay(标志着Actor被创建到世界当中)
6、Tick
删除
方法一:Destroy函数
Destroy函数,销毁一个Actor。两个参数说明如下:
- bNetForce 是否强制网络同步删除
- bShouldModifyLevel 控制顺序:先删除actor再修改关卡(即把actor移除出场景),还是先修改再删除。默认值true,意味着先修改后删除
事实上,此时actor只是被标记为消亡,在内存中还未移除
方法二:SetLifeSpan函数
设置延时删除(单位秒)
销毁回调
当物体被销毁时会触发两个回调:Destroyed和EndPlay。在CPP里这两个重写的时候需要自己实现并导入相应的头文件。
使用EndPlay函数时,参数是一个枚举类型。类型介绍如下:
名称 | 说明 |
---|---|
Destroyed | 当actor或是component从内存中彻底被删除时 |
LevelTransition | 关卡切换时删除回调(非关卡流) |
EndPlayInEditor | 编辑器关闭时,回调通知 |
RemovedFromWorld | 关卡流切换被释放时调用 |
Quit | 游戏退出时被删除回调 |