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

#include <TA_CapsuleOverlap.h>

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

Public 멤버 함수

 ATA_CapsuleOverlap ()
 
- 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 SetShowDebug (bool InShowDebug)
 
FORCEINLINE void SetLevel (float InLevel)
 
FORCEINLINE void SetTraceChannel (ECollisionChannel InChannel)
 
FORCEINLINE void SetSingleTrace (bool bInSingleTrace)
 

Public 속성

FScalableFloat TraceRadius
 
float ForwardDistance
 

Protected 멤버 함수

virtual void PerformTrace (TArray< FHitResult > &OutHits) override
 

추가로 상속된 멤버들

- ATA_Trace(으)로부터 상속된 Protected 속성
virtual void PerformTrace(TArray< FHitResult > &OutHits) PURE_VIRTUAL(ATA_Trace void ProcessTraceResults ()
 
bool bShowDebug = true
 
float Level = 1.0f
 
ECollisionChannel TraceChannel
 
bool bSingleTrace = false
 
TSet< TWeakObjectPtr< AActor > > HitActors
 

생성자 & 소멸자 문서화

◆ ATA_CapsuleOverlap()

ATA_CapsuleOverlap::ATA_CapsuleOverlap ( )
12 : TraceRadius(50.0f)
13{
14 ForwardDistance = 0.0f;
15}
FScalableFloat TraceRadius
Definition TA_CapsuleOverlap.h:20
float ForwardDistance
Definition TA_CapsuleOverlap.h:23

멤버 함수 문서화

◆ PerformTrace()

void ATA_CapsuleOverlap::PerformTrace ( TArray< FHitResult > &  OutHits)
overrideprotectedvirtual
18{
19 ACharacter* Character = Cast<ACharacter>(SourceActor);
20 if (!Character)
21 {
22 return;
23 }
24
25 float CurrentRadius = TraceRadius.GetValueAtLevel(Level);
26
27 FVector Start = Character->GetActorLocation();
28 FVector Forward = Character->GetActorForwardVector();
29
30 FVector Center = Start + (Forward * ForwardDistance * 0.5f);
31
32 float CapsuleHalfHeight = (ForwardDistance * 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 FHitResult FakeHit(Overlap.GetActor(), Overlap.Component.Get(), Center, FVector::ZeroVector);
51 FakeHit.ImpactPoint = Center;
52 OutHits.Add(FakeHit);
53 }
54
55#if ENABLE_DRAW_DEBUG
56 if (bShowDebug)
57 {
58 FColor DrawColor = OutHits.Num() > 0 ? FColor::Green : FColor::Red;
59 DrawDebugCapsule(GetWorld(), Center, CapsuleHalfHeight, CurrentRadius, CapsuleRot, DrawColor, false, 1.0f);
60 }
61#endif
62
63}
Definition TA_CapsuleOverlap.h:13
ECollisionChannel TraceChannel
Definition TA_Trace.h:38
bool bShowDebug
Definition TA_Trace.h:36
float Level
Definition TA_Trace.h:37

멤버 데이터 문서화

◆ ForwardDistance

float ATA_CapsuleOverlap::ForwardDistance

◆ TraceRadius

FScalableFloat ATA_CapsuleOverlap::TraceRadius

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