document.write("
#pragma once
#include "CoreMinimal.h"
#include "AbilityTask_MoveCharacterToLocation.h"
#include "AbilityTask_FollowCursor.generated.h"
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FFollowCursorSimpleDelegate);
UCLASS()
class DANDELION_API UAbilityTask_FollowCursor : public UAbilityTask
{
GENERATED_BODY()
public:
UPROPERTY(BlueprintAssignable)
FFollowCursorSimpleDelegate OnMoveComplete;
UAbilityTask_FollowCursor();
UFUNCTION(
BlueprintCallable,
Category = "Ability|Tasks",
meta = (HidePin = "OwningAbility", DefaultToSelf = "OwningAbility", BlueprintInternalUseOnly = "TRUE")
)
static UAbilityTask_FollowCursor* FollowCursor(
UDandelionGameplayAbility* OwningAbility,
FName TaskInstanceName,
float StopDistance = 0.f
);
virtual void ExternalCancel() override;
protected:
virtual void Activate() override;
virtual void TickTask(float DeltaTime) override;
private:
UPROPERTY(Transient)
TObjectPtr<APawn> PlayerPawn;
UPROPERTY(Transient)
TObjectPtr<ADandelionPlayerController> PlayerController;
FVector TargetLocation;
float StopDistance = 0.f;
void UpdateTargetLocation();
};
AbilityTask_FollowCursor.h - Snippet hosted by \"Cacher\"
");