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

#include <CharacterBase.h>

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

Public 멤버 함수

 ACharacterBase (const FObjectInitializer &ObjectInitializer=FObjectInitializer::Get())
 
virtual void SetDead ()
 
virtual bool IsDead () const
 
virtual void PlayDeadAnimation ()
 
bool IsStaggerImmune () const
 
virtual class UAbilitySystemComponent * GetAbilitySystemComponent () const override
 
FORCEINLINE FOnAbilitySystemReady & GetOnAbilitySystemReady ()
 
FORCEINLINE UKnockbackComponent * GetKnockbackComponent () const
 

Protected 멤버 함수

virtual void virtual InitializeAttributes() PURE_VIRTUAL(ACK_CharacterBase void OnMoveSpeedChanged (const struct FOnAttributeChangeData &Data)
 
virtual void OnDamageTaken (const FDamageResultData &DamageResult)
 
bool CanPlayHitReaction (const FDamageResultData &DamageResult) const
 
void PlayHitReaction (AActor *Attacker)
 
virtual UAnimMontage * GetHitReactMontage () const
 
virtual void RotateHitSource (const FVector &HitFromLocation)
 
virtual void OnHitReactMontageEnded (UAnimMontage *Montage, bool bInterrupted)
 

Protected 속성

FOnAbilitySystemReady OnAbilitySystemReady
 
TObjectPtr< UAbilitySystemComponent > ASC
 
TObjectPtr< UKnockbackComponent > KnockbackComponent
 
TObjectPtr< UAudioEmitterComponent > AudioTagComponent
 

생성자 & 소멸자 문서화

◆ ACharacterBase()

ACharacterBase::ACharacterBase ( const FObjectInitializer &  ObjectInitializer = FObjectInitializer::Get())
21 : Super(ObjectInitializer)
22{
23 PrimaryActorTick.bCanEverTick = false;
24 KnockbackComponent = CreateDefaultSubobject<UKnockbackComponent>(TEXT("KnockbackComponent"));
25 AudioTagComponent = CreateDefaultSubobject<UAudioEmitterComponent>(TEXT("AudioTagComponent"));
26
27 // Pawn
28 bUseControllerRotationPitch = false;
29 bUseControllerRotationYaw = false;
30 bUseControllerRotationRoll = false;
31
32 // Capsule
33 GetCapsuleComponent()->InitCapsuleSize(42.f, 96.0f);
34 GetCapsuleComponent()->SetCollisionProfileName(CPROFILE_CKCAPSULE);
35
36
37 // Movement
38 GetCharacterMovement()->bOrientRotationToMovement = true;
39 GetCharacterMovement()->RotationRate = FRotator(0.0f, 500.0f, 0.0f);
40 GetCharacterMovement()->JumpZVelocity = 700.f;
41 GetCharacterMovement()->AirControl = 0.35f;
42 GetCharacterMovement()->MaxWalkSpeed = 500.f;
43 GetCharacterMovement()->MinAnalogWalkSpeed = 20.f;
44 GetCharacterMovement()->BrakingDecelerationWalking = 2000.f;
45
46 GetMesh()->SetRelativeLocationAndRotation(FVector(0.0f, 0.0f, -100.0f), FRotator(0.0f, -90.0f, 0.0f));
47 GetMesh()->SetAnimationMode(EAnimationMode::AnimationBlueprint);
48 GetMesh()->SetCollisionProfileName(TEXT("NoCollision"));
49 GetMesh()->SetReceivesDecals(false);
50}
#define CPROFILE_CKCAPSULE
Definition CK_Collision.h:12
TObjectPtr< UKnockbackComponent > KnockbackComponent
Definition CharacterBase.h:83
TObjectPtr< UAudioEmitterComponent > AudioTagComponent
Definition CharacterBase.h:86

멤버 함수 문서화

◆ CanPlayHitReaction()

bool ACharacterBase::CanPlayHitReaction ( const FDamageResultData DamageResult) const
protected
94{
95 return DamageResult.TargetActor == this && IsDead() == false && IsStaggerImmune() == false;
96}
bool IsStaggerImmune() const
Definition CharacterBase.cpp:86
virtual bool IsDead() const
Definition CharacterBase.cpp:65
TObjectPtr< AActor > TargetActor
Definition BaseAttributeSet.h:19
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetAbilitySystemComponent()

virtual class UAbilitySystemComponent * ACharacterBase::GetAbilitySystemComponent ( ) const
inlineoverridevirtual
37 {
38 return ASC;
39 }
TObjectPtr< UAbilitySystemComponent > ASC
Definition CharacterBase.h:80
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetHitReactMontage()

virtual UAnimMontage * ACharacterBase::GetHitReactMontage ( ) const
inlineprotectedvirtual

AEnemyCharacter, AMainPlayerCharacter에서 재구현되었습니다.

66 {
67 return nullptr;
68 }
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetKnockbackComponent()

FORCEINLINE UKnockbackComponent * ACharacterBase::GetKnockbackComponent ( ) const
inline
47 {
48 return KnockbackComponent;
49 }

◆ GetOnAbilitySystemReady()

FORCEINLINE FOnAbilitySystemReady & ACharacterBase::GetOnAbilitySystemReady ( )
inline
42 {
44 }
FOnAbilitySystemReady OnAbilitySystemReady
Definition CharacterBase.h:77
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ IsDead()

bool ACharacterBase::IsDead ( ) const
virtual
66{
67 //못 찾았으면 타겟팅 필터링 과정에서 걸러지게 죽은걸로 판단한다.
68 if (ASC == nullptr)
69 {
70 return true;
71 }
72
73 const UBaseAttributeSet* Attributes = ASC->GetSet<UBaseAttributeSet>();
74
75 if (Attributes == nullptr)
76 {
77 return true;
78 }
79 else
80 {
81 return Attributes->IsOutOfHealth();
82 }
83}
Definition BaseAttributeSet.h:58
FORCEINLINE bool IsOutOfHealth() const
Definition BaseAttributeSet.h:84
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ IsStaggerImmune()

bool ACharacterBase::IsStaggerImmune ( ) const
87{
88 return ASC && (ASC->HasMatchingGameplayTag(TAG_CHARACTER_STATE_ISSUPERARMOR)
89 || ASC->HasMatchingGameplayTag(TAG_CHARACTER_STATE_ISINVINCIBLE));
90}
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnDamageTaken()

void ACharacterBase::OnDamageTaken ( const FDamageResultData DamageResult)
protectedvirtual

AEnemyCharacterBase, AMainPlayerCharacter에서 재구현되었습니다.

100{
101 if (CanPlayHitReaction(DamageResult) == false)
102 {
103 return;
104 }
105
106 // 자기 자신에게 피해를 주었을 경우 회전 대상에서 제외
107 AActor* Attacker = (DamageResult.SourceActor != this) ? DamageResult.SourceActor : nullptr;
108 PlayHitReaction(Attacker);
109}
bool CanPlayHitReaction(const FDamageResultData &DamageResult) const
Definition CharacterBase.cpp:93
void PlayHitReaction(AActor *Attacker)
Definition CharacterBase.cpp:121
TObjectPtr< AActor > SourceActor
Definition BaseAttributeSet.h:22
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnHitReactMontageEnded()

virtual void ACharacterBase::OnHitReactMontageEnded ( UAnimMontage *  Montage,
bool  bInterrupted 
)
inlineprotectedvirtual

AEnemyCharacter에서 재구현되었습니다.

74{ }
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnMoveSpeedChanged()

void ACharacterBase::OnMoveSpeedChanged ( const struct FOnAttributeChangeData &  Data)
protectedvirtual
171{
172 if (UCharacterMovementComponent* MC = GetCharacterMovement())
173 {
174 MC->MaxWalkSpeed = Data.NewValue;
175 }
176 else
177 {
178 LOG_ERROR(LogCK, "%s가 없습니다. ", NAMEOF(UCharacterMovementComponent));
179 }
180}
#define LOG_ERROR(Category, Format,...)
Definition CK_UE.h:40
#define NAMEOF(Type)
Definition CK_UE.h:30

◆ PlayDeadAnimation()

void ACharacterBase::PlayDeadAnimation ( )
virtual

AEnemyCharacterBase에서 재구현되었습니다.

155{
156 if (UCapsuleComponent* CapsuleComp = GetCapsuleComponent())
157 {
158 CapsuleComp->SetCollisionEnabled(ECollisionEnabled::NoCollision);
159 }
160
161 if (USkeletalMeshComponent* MeshComp = GetMesh())
162 {
163 MeshComp->SetSimulatePhysics(false);
164 MeshComp->SetCollisionProfileName(TEXT("NoCollision"));
165 MeshComp->SetCollisionEnabled(ECollisionEnabled::NoCollision);
166 }
167}
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ PlayHitReaction()

void ACharacterBase::PlayHitReaction ( AActor *  Attacker)
protected
122{
123 if (Attacker)
124 {
125 RotateHitSource(Attacker->GetActorLocation());
126 }
127
128 UAnimMontage* Montage = GetHitReactMontage();
129 if (Montage == nullptr)
130 {
131 return;
132 }
133
134 USkeletalMeshComponent* MeshComp = GetMesh();
135 if (MeshComp == nullptr)
136 {
137 return;
138 }
139
140 UAnimInstance* Anim = MeshComp->GetAnimInstance();
141 if (Anim == nullptr)
142 {
143 return;
144 }
145
146 Anim->Montage_Play(Montage, 1.0f);
147
148 FOnMontageEnded EndDelegate;
149 EndDelegate.BindUObject(this, &ACharacterBase::OnHitReactMontageEnded);
150 Anim->Montage_SetEndDelegate(EndDelegate, Montage);
151}
virtual void OnHitReactMontageEnded(UAnimMontage *Montage, bool bInterrupted)
Definition CharacterBase.h:74
virtual void RotateHitSource(const FVector &HitFromLocation)
Definition CharacterBase.cpp:112
virtual UAnimMontage * GetHitReactMontage() const
Definition CharacterBase.h:65
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ RotateHitSource()

void ACharacterBase::RotateHitSource ( const FVector &  HitFromLocation)
protectedvirtual

AEnemyCharacter에서 재구현되었습니다.

113{
114 if (UCharacterMovementComponentBase* RotationComponent = Cast<UCharacterMovementComponentBase>(GetCharacterMovement()))
115 {
116 RotationComponent->RotateToLocation(HitFromLocation, 0.0f, 0.0f, 0.0f, false);
117 }
118}
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ SetDead()

void ACharacterBase::SetDead ( )
virtual

AMainPlayerCharacter에서 재구현되었습니다.

54{
55 if (ASC)
56 {
57 ASC->CancelAllAbilities();
58 }
59
60 GetCharacterMovement()->SetMovementMode(MOVE_None);
62}
virtual void PlayDeadAnimation()
Definition CharacterBase.cpp:154
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ ASC

TObjectPtr<UAbilitySystemComponent> ACharacterBase::ASC
protected

◆ AudioTagComponent

TObjectPtr<UAudioEmitterComponent> ACharacterBase::AudioTagComponent
protected

◆ KnockbackComponent

TObjectPtr<UKnockbackComponent> ACharacterBase::KnockbackComponent
protected

◆ OnAbilitySystemReady

FOnAbilitySystemReady ACharacterBase::OnAbilitySystemReady
protected

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