⚽️
【UE5】自作AbilityTaskでTick処理を実装する方法
概要
AbilityTaskをC++で自作する時に、Tickで処理待ちしたいことがありました。
実際、指定した座標まで移動するUAbilityTask_MoveToLocation
はTick処理を使って座標が到達するのを待っていました。
Plugins\Runtime\GameplayAbilities\Source\GameplayAbilities\Private\Abilities\Tasks\AbilityTask_MoveToLocation.cpp
void UAbilityTask_MoveToLocation::TickTask(float DeltaTime)
{
//省略
if (CurrentTime >= TimeMoveWillEnd)
{
bIsFinished = true;
// Teleport in attempt to find a valid collision spot
MyActor->TeleportTo(TargetLocation, MyActor->GetActorRotation());
if (!bIsSimulating)
{
MyActor->ForceNetUpdate();
if (ShouldBroadcastAbilityTaskDelegates())
{
OnTargetLocationReached.Broadcast();
}
EndTask();
}
}
//省略
}
今回はTick処理を受け取れるAbilityTaskを作る方法について記事にしました。
環境
UE5.4.4
やり方
やることは2つです。
-
bTickingTask
をtrueにする -
TickTask
関数を実装する
TickTask
関数を実装するだけでは動かなかったので、bTickingTask
もtrueになっているか確認する必要があります。
Discussion