29 static UAT_EnemyDashMove* EnemyDashMove(UGameplayAbility* OwningAbility, UBoxComponent* InDashHitBoxComponent,
const FVector& InDashDirection,
float InDashSpeed,
float InMaxDistance, ECollisionChannel InHitTraceChannel);
31 virtual void Activate()
override;
32 virtual void TickTask(
float DeltaTime)
override;
33 virtual void OnDestroy(
bool bInOwnerFinished)
override;
36 bool SweepDashHit(
const FVector& StartLocation,
const FVector& EndLocation, FHitResult& OutHitResult)
const;
38 void BroadcastTargetHit(
const FHitResult& HitResult);
47 TObjectPtr<ACharacter> OwnerCharacter;
50 TObjectPtr<UCharacterMovementComponent> MovementComponent;
53 TObjectPtr<UCapsuleComponent> CapsuleComponent;
56 TObjectPtr<UBoxComponent> DashHitBoxComponent;
59 TObjectPtr<UCharacterMovementComponentBase> RotationComponent;
61 FVector DashDirection = FVector::ZeroVector;
62 float DashSpeed = 0.0f;
63 float MaxDistance = 0.0f;
64 float MovedDistance = 0.0f;
65 ECollisionChannel HitTraceChannel = ECC_Pawn;
66 ECollisionResponse CachedPawnCollisionResponse = ECR_Block;
68 bool bDashEnded = false;