h文件
FTimerHandle MemberTimerHandle;
void RepeatingFunction();
cpp文件
GetWorldTimerManager().SetTimer(MemberTimerHandle, this, &AMyStaticMeshActor::RepeatingFunction, 0.015f, true, 0.0f);
第三个参数是需要定时运行的逻辑函数
tick代理方式
h文件
FTickerDelegate TickDelegate;
FDelegateHandle TickDelegateHandle;
bool MyTick(float DeltaSeconds);
cpp文件
// Sets default values
AMyActor2::AMyActor2()
{
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
TickDelegate = FTickerDelegate::CreateUObject(this, &AMyActor2::MyTick);
TickDelegateHandle = FTicker::GetCoreTicker().AddTicker(TickDelegate);
}
// Called when the game starts or when spawned
void AMyActor2::BeginPlay()
{
Super::BeginPlay();
}
// Called every frame
void AMyActor2::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
}
bool AMyActor2::MyTick(float DeltaSeconds)
{
GEngine->AddOnScreenDebugMessage((uint64)-1, 2.0f, FColor::Emerald, FString::Printf(TEXT("mytick")));
return true;
}