document.write("
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(); };