Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
ATA_CapsuleOverlap 클래스 참조

#include <TA_CapsuleOverlap.h>

ATA_CapsuleOverlap에 대한 상속 다이어그램 :
Inheritance graph
ATA_CapsuleOverlap에 대한 협력 다이어그램:
Collaboration graph

Public 멤버 함수

 ATA_CapsuleOverlap ()
 
FORCEINLINE float GetTraceRadiusAtLevel (const float InCombatDataLevel) const
 
- ATA_Trace(으)로부터 상속된 Public 멤버 함수
 ATA_Trace ()
 
virtual void StartTargeting (UGameplayAbility *Ability) override
 
virtual void ConfirmTargetingAndContinue () override
 
virtual void StopTargeting ()
 
virtual void Tick (float DeltaSeconds) override
 
FORCEINLINE void SetCombatDataLevel (float InCombatDataLevel)
 
FORCEINLINE void SetTraceChannel (ECollisionChannel InChannel)
 
FORCEINLINE void SetSingleTrace (bool bInSingleTrace)
 
FORCEINLINE void SetMaxHitCountPerTarget (int32 InCount)
 
FORCEINLINE void SetMultiHitProfile (UDA_MultiHitProfile *InProfile)
 
FORCEINLINE void SetOverrideTraceTransform (const FTransform &InTraceTransform)
 

Protected 멤버 함수

virtual void PerformTrace (TArray< FHitResult > &OutHits) override
 
- ATA_Trace(으)로부터 상속된 Protected 멤버 함수
FTransform ResolveTraceTransform () const
 
bool IsDebugEnabled () const
 

Protected 속성

FScalableFloat TraceRadius
 
FScalableFloat ForwardDistance
 
- ATA_Trace(으)로부터 상속된 Protected 속성
virtual void PerformTrace(TArray< FHitResult > &OutHits) PURE_VIRTUAL(ATA_Trace bool ProcessTraceResults ()
 
float CombatDataLevel = 1.0f
 
ECollisionChannel TraceChannel
 
bool bSingleTrace = false
 
int32 MaxHitCountPerTarget = 1
 
TObjectPtr< UDA_MultiHitProfileMultiHitProfile
 
TMap< TWeakObjectPtr< AActor >, FMultiHitTargetStateHitMap
 
TObjectPtr< ACharacter > Character
 
TObjectPtr< USkeletalMeshComponent > CharacterMesh
 
FTransform OverrideTraceTransform = FTransform::Identity
 
uint8 bHasOverrideTraceTransform: 1 = false
 

추가로 상속된 멤버들

- ATA_Trace(으)로부터 상속된 Public 속성
FFinisherTargetDataDelegate OnFinisherTargetDataDelegate
 

생성자 & 소멸자 문서화

◆ ATA_CapsuleOverlap()

ATA_CapsuleOverlap::ATA_CapsuleOverlap ( )
12 : TraceRadius(50.0f), ForwardDistance(0.0f)
13{
14}
FScalableFloat TraceRadius
Definition TA_CapsuleOverlap.h:28
FScalableFloat ForwardDistance
Definition TA_CapsuleOverlap.h:31

멤버 함수 문서화

◆ GetTraceRadiusAtLevel()

FORCEINLINE float ATA_CapsuleOverlap::GetTraceRadiusAtLevel ( const float  InCombatDataLevel) const
inline
19 {
20 return TraceRadius.GetValueAtLevel(InCombatDataLevel);
21 }
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ PerformTrace()

void ATA_CapsuleOverlap::PerformTrace ( TArray< FHitResult > &  OutHits)
overrideprotectedvirtual
17{
18 if (!IsValid(Character))
19 {
20 return;
21 }
22
23 float CurrentRadius = TraceRadius.GetValueAtLevel(CombatDataLevel);
24 float CurrentForwardDistance = ForwardDistance.GetValueAtLevel(CombatDataLevel);
25
26 const FTransform TraceTransform = ResolveTraceTransform();
27 FVector Start = TraceTransform.GetLocation();
28 FVector Forward = TraceTransform.GetRotation().GetForwardVector();
29
30 FVector Center = Start + (Forward * CurrentForwardDistance * 0.5f);
31
32 float CapsuleHalfHeight = (CurrentForwardDistance * 0.5f) + CurrentRadius;
33
34 FQuat CapsuleRot = FRotationMatrix::MakeFromZ(Forward).ToQuat();
35
36 FCollisionQueryParams Params(SCENE_QUERY_STAT(ATA_CapsuleOverlap), false, Character);
37 TArray<FOverlapResult> Overlaps;
38
39 GetWorld()->OverlapMultiByChannel(
40 Overlaps,
41 Center,
42 CapsuleRot,
44 FCollisionShape::MakeCapsule(CurrentRadius, CapsuleHalfHeight),
45 Params
46 );
47
48 for (const FOverlapResult& Overlap : Overlaps)
49 {
50 // 유효한지 예외 처리
51 AActor* OverlapActor = Overlap.GetActor();
52 if (!IsValid(OverlapActor))
53 {
54 continue;
55 }
56
57 FVector EnemyLocation = Overlap.GetActor()->GetActorLocation();
58 FVector DirToPlayer = (Start - EnemyLocation).GetSafeNormal();
59
60 FHitResult FakeHit(Overlap.GetActor(), Overlap.Component.Get(), EnemyLocation, DirToPlayer);
61 FakeHit.ImpactPoint = EnemyLocation;
62
63 OutHits.Add(FakeHit);
64 }
65
66#if ENABLE_DRAW_DEBUG
67 if (IsDebugEnabled())
68 {
69 FColor DrawColor = OutHits.Num() > 0 ? FColor::Green : FColor::Red;
70 DrawDebugCapsule(GetWorld(), Center, CapsuleHalfHeight, CurrentRadius, CapsuleRot, DrawColor, false, 1.0f);
71 }
72#endif
73
74}
Definition TA_CapsuleOverlap.h:12
float CombatDataLevel
Definition TA_Trace.h:85
ECollisionChannel TraceChannel
Definition TA_Trace.h:86
bool IsDebugEnabled() const
Definition TA_Trace.cpp:166
TObjectPtr< ACharacter > Character
Definition TA_Trace.h:100
FTransform ResolveTraceTransform() const
Definition TA_Trace.cpp:145
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ ForwardDistance

FScalableFloat ATA_CapsuleOverlap::ForwardDistance
protected

◆ TraceRadius

FScalableFloat ATA_CapsuleOverlap::TraceRadius
protected

이 클래스에 대한 문서화 페이지는 다음의 파일들로부터 생성되었습니다.: