document.write("
// Fill out your copyright notice in the Description page of Project Settings. UAbilityTask_MoveCharacterToCursor* UAbilityTask_MoveCharacterToCursor::MoveCharacterToCursor( UDandelionGameplayAbility* OwningAbility, const FName TaskInstanceName ) { UAbilityTask_MoveCharacterToCursor* NewTaskInstance = NewAbilityTask<UAbilityTask_MoveCharacterToCursor>(OwningAbility, TaskInstanceName); NewTaskInstance->InitializeBaseMoveTask(OwningAbility); return NewTaskInstance; } void UAbilityTask_MoveCharacterToCursor::Activate() { TargetLocation = GetPositionUnderCursor(); Super::Activate(); } FVector UAbilityTask_MoveCharacterToCursor::GetPositionUnderCursor() const { FHitResult Hit; // TODO: Make the trace channel a parameter for this task? if (!PlayerController->GetHitResultUnderCursor(ECC_Visibility, true, Hit)) { UE_LOG( LogGameplayTasks, Verbose, TEXT("%s: Failed to register a hit under cursor in GetPositionUnderCursor."), *GetFullNameSafe(this) ); // TODO: Maybe make it possible to pass in a fallback location? Possibly just abort the task? return FVector::Zero(); } return Hit.Location; }