Files
PHY/Plugins/GCS/Source/GenericGameplayAbilities/Private/AbilityTasks/GGA_AbilityTask_WaitDelayOneFrame.cpp
2026-03-03 01:23:02 +08:00

32 lines
894 B
C++

// Copyright 2025 https://yuewu.dev/en All Rights Reserved.
#include "AbilityTasks/GGA_AbilityTask_WaitDelayOneFrame.h"
#include "Engine/World.h"
#include "TimerManager.h"
UGGA_AbilityTask_WaitDelayOneFrame::UGGA_AbilityTask_WaitDelayOneFrame(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
}
void UGGA_AbilityTask_WaitDelayOneFrame::Activate()
{
GetWorld()->GetTimerManager().SetTimerForNextTick(this, &UGGA_AbilityTask_WaitDelayOneFrame::OnDelayFinish);
}
UGGA_AbilityTask_WaitDelayOneFrame* UGGA_AbilityTask_WaitDelayOneFrame::WaitDelayOneFrame(UGameplayAbility* OwningAbility)
{
UGGA_AbilityTask_WaitDelayOneFrame* MyObj = NewAbilityTask<UGGA_AbilityTask_WaitDelayOneFrame>(OwningAbility);
return MyObj;
}
void UGGA_AbilityTask_WaitDelayOneFrame::OnDelayFinish()
{
if (ShouldBroadcastAbilityTaskDelegates())
{
OnFinish.Broadcast();
}
EndTask();
}