我是靠谱客的博主 文静鼠标,最近开发中收集的这篇文章主要介绍UE4 C++中实现Delay效果,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

UE4蓝图中存在Delay节点(只能在事件图表里使用)

如果要在UE C++ 实现,可以使用Timer.

在这里,我的目标是设置bIsRolling = 1后,延时一段时间再设置bIsRolling =0;

1.在头文件声明计时器。

	//计时器
	FTimerHandle TimerHandle;

2.Cpp代码(注意注释)

void ACharacterBase::Roll()
{
	if (!bIsRolling)
	{
		if ((InputX == 0) && (InputY == 0))
		{
			CurrentInputX = 0;
			CurrentInputY = 0;
			bIsRolling = 1;

            //延时具体实现,0.2秒后会执行setIsRoll()方法,将bIsRolling设为0;
			GetWorld()->GetTimerManager().SetTimer(TimerHandle, this, &ACharacterBase::setIsRoll, 0.2f, true);
		}
		else if (!bIsLocking)
		{
			CurrentInputX = 1;
			CurrentInputY = 0;
			bIsRolling = 1;
            //
			GetWorld()->GetTimerManager().SetTimer(TimerHandle, this, &ACharacterBase::setIsRoll, 0.7f, true);
		}
	}
}

//被Timer调用
void ACharacterBase::setIsRoll()
{
	bIsRolling = 0;

    //清除计时器TimerHandle
	GetWorld()->GetTimerManager().ClearTimer(TimerHandle);
}

最后

以上就是文静鼠标为你收集整理的UE4 C++中实现Delay效果的全部内容,希望文章能够帮你解决UE4 C++中实现Delay效果所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部