.h:
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "Plants.generated.h"
UCLASS()
class HOWTO_AUTOCAMERA_API APlants : public AActor
{
GENERATED_BODY()
public:
// Sets default values for this actor's properties
APlants();
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
UFUNCTION(BlueprintCallable)
void LoopDo();
};
.cpp:
// Fill out your copyright notice in the Description page of Project Settings.
#include "Plants.h"
#include "Engine.h"
// Sets default values
APlants::APlants()
{
// 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;
}
// Called when the game starts or when spawned
void APlants::BeginPlay()
{
Super::BeginPlay();
FTimerHandle TimeHandle;
GetWorld()->GetTimerManager().SetTimer(TimeHandle, this, &APlants::LoopDo, 0.2f, true);
}
void APlants::LoopDo() {
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("22"));
return;
}
// Called every frame
void APlants::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
}
同时,SetTimer也可以做出Delay效果,只需要把最后一位True,改为False。