6- Actor和Object

6. Actor和Object

1. UObject功能(什么是UObject)

  • 反射

  • 垃圾回收(GC)

  • 序列化和反序列化:把内存中的数据存到磁盘,从磁盘读出数据到内存。

  • COD(class object default类默认对象):

2. AActor生成与销毁管理

2.1 生成(spawn)

​ 使用下面的代码生成一个Actor

AMyActor* MyActor = GetWorld->SpawnActor<AMyActor>(FVector(0,0,0),FRotator(0,0,0));

2.2 销毁(Destroy)

MyActor->Destory();

2.3 定时销毁(SetLifeSpan)

SetLifeSpan(10);		// this 对象10秒后销毁

3. AActor Tick

​ Tick函数是继承了父类的Tick函数,在构造函数中使用PrimaryActorTick设置开启:

PrimaryActorTick.bCanEverTick = true;		// 开启Tick函数

void AMyActor::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);

// 自己的代码

}

4. GENERATED_UCLASS_BODY

​ 相比于GENERATED_BODYGENERATED_UCLASS_BODY提供了一个构造函数的声明:

AMyActor(FObjectInitializer const &obj);

​ 需要手动去实现它的定义:

AMyActor::AMyActor(class FObjectInitializer const &Obj) : Super(Obj)
{

}