tick代理的使用

UCLASS()
class VCTEST_API AMyActor2 : public AActor
{
	GENERATED_BODY()
	
public:	
	// Sets default values for this actor's properties
	AMyActor2();

protected:
	// Called when the game starts or when spawned
	virtual void BeginPlay() override;

public:	
	// Called every frame
	virtual void Tick(float DeltaTime) override;

	FTickerDelegate TickDelegate;
	FDelegateHandle TickDelegateHandle;
	bool MyTick(float DeltaSeconds);
	
};
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;
}

猜你喜欢

转载自blog.csdn.net/SUKHOI27SMK/article/details/82772192