UE4关于TimeHandle的C++调用(_杰森大师)

.h
/**技能定时器*/
FTimerHandle Skill2Timer;
/**总共CD时间*/
float Skill2TimerAllCD;
/**现在CD时间*/
float Skill2TimerCurrentCD; 

/**调用回调函数*/
void Fire();

/**声明回调函数*/
void Skill2TimerCallback();
.cpp

void AGamePlayerController::Fire()
{
/**开启定时器*/
Character->GetWorldTimerHandle().SetTimer(Skill2Timer,this,&AGamePlayerController::Skill2TimerCallback,1.f,true);
Skill2TimerCurrentCD = Skill2TimerAllCD;
}

void AGamePlayerController::Skill2TimerCallback()
{
	if (Skill2TimerCurrentCD == 0.0f)
	{
		/**自己去UMG里面创建一个*/SkillUserWidget->MsgText2->SetVisibility(ESlateVisibility::Hidden);
		SoldierCharacter->GetWorldTimerManager().ClearTimer(Skill2Timer);
	}
	else
	{
		SkillUserWidget->MsgText2->SetVisibility(ESlateVisibility::Visible);
		SkillUserWidget->MsgText2->SetText(FText::FromString(FString::FromInt(Skill2TimerCurrentCD)));
		Skill2TimerCurrentCD--;
	}
}
发布了20 篇原创文章 · 获赞 1 · 访问量 2697

猜你喜欢

转载自blog.csdn.net/weixin_42295465/article/details/103893254