UE4基础:用TimerManager实现一个简单的计时器

   日期:2020-05-31     浏览:214    评论:0    
核心提示://AMyActor.h#pragma once#include CoreMinimal.h#include GameFramework/Actor.h#include MyActor.generated.hUCLASS()class GAMECPP_API AMyActor : public AActor{ GENERATED_BODY()protected: virtual void BeginPlay() override;private: struct FTim
//AMyActor.h
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "MyActor.generated.h"

UCLASS()
class GAMECPP_API AMyActor : public AActor
{
	GENERATED_BODY()
protected:
	virtual void BeginPlay() override;
private:
	struct FTimerHandle ScreenTimerHandle;//句柄
	int32 GameTime;
	void TimerCallback();//回调函数
};
//AMyActor.cpp
#include "MyActor.h"
#include "TimerManager.h"

void AMyActor::BeginPlay()
{
	Super::BeginPlay();
	GameTime = 0;
	UWorld* world = this->GetWorld();//world可能为空,所以要判断一下
	if(world)
	{
		world->GetTimerManager().ClearTimer(ScreenTimerHandle);
		world->GetTimerManager().SetTimer(ScreenTimerHandle,this,&AMyActor::TimerCallback,2.0f,true);
	}
}

void AMyActor::TimerCallback()
{
	GEngine->AddOnScreenDebugMessage(1,1.0,FColor::Green,FString::FromInt(GameTime++));
}

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服