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

#include <GA_SkillBase.h>

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

Public 멤버 함수

virtual void ActivateAbility (const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo, const FGameplayEventData *TriggerEventData) override
 
virtual void ApplyCooldown (const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo) const override
 
const FGameplayTagContainer * GetCooldownTags () const
 
- UGA_CombatBase(으)로부터 상속된 Public 멤버 함수
virtual void OnGiveAbility (const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilitySpec &Spec) override
 
virtual void EndAbility (const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo, bool bReplicateEndAbility, bool bWasCancelled) override
 
- UGA_Base(으)로부터 상속된 Public 멤버 함수
 UGA_Base ()
 

Protected 멤버 함수

virtual void ApplyCombatData () override
 
virtual bool CheckCost (const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, FGameplayTagContainer *OptionalRelevantTags) const override
 
virtual void ApplyCost (const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo) const override
 
float GetSkillMontageSectionLength (const UAnimMontage *Montage, FName SectionName, bool bApplyPlayRate=false, float PlayRate=1.0f) const
 
bool HasClearStrikePath (const AMainPlayerCharacter *Player, const AActor *TargetActor) const
 
void SetAvatarPawnCollisionResponse (ECollisionResponse Response) const
 
float GetPlayerCurrentWeaponAttackRange () const
 
void SetAvatarMeshHidden (bool bHidden) const
 
void ResetSkillMontagePlayRate () const
 
AActor * GetTargetActor () const
 
UAnimMontage * GetSkillMontage (FGameplayTag PlayMontageTag=FGameplayTag::EmptyTag) const
 
bool ContainsAllMontageSections (const UAnimMontage *Montage, TArray< FName > SectionNames) const
 
template<typename T >
const T * GetExtendedData () const
 
template<typename T >
bool HasExtendedData () const
 
- UGA_CombatBase(으)로부터 상속된 Protected 멤버 함수
void SetupHitCheckListener ()
 
void OnHitCheckStart (FGameplayEventData Payload)
 
void OnHitCheckEnd (FGameplayEventData Payload)
 
void OnTraceResultCallback (const FGameplayAbilityTargetDataHandle &TargetDataHandle, float CombatDataLevel, int32 CombatHitDataIndex)
 
void OnFinisherResultCallback (const FGameplayAbilityTargetDataHandle &TargetDataHandle, float CombatDataLevel, int32 CombatHitDataIndex)
 
virtual TOptional< FTransform > GetTraceTransformForHitCheck () const
 
void ApplyEffectsToSelf (const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo)
 
FCombatHitPayload BuildCombatHitPayload (const FCombatHitData &HitData, float DamageMultiplier, bool bRequestKnockback)
 
TArray< FGameplayEffectSpecHandle > BuildCombatEffectSpecs (const FCombatHitData &HitData, float DamageMultiplier)
 
FGameplayEffectSpecHandle BuildEffectSpec (const FCombatEffectData &EffectData, float CombatDataLevel)
 
void PlayCombatHitAudio (const FVector &HitLocation)
 
void CacheAudioTagComponents ()
 
const FKnockbackDataFindKnockbackData (const FCombatHitData &HitData) const
 
void NotifyCameraHitConfirmed () const
 
float GetAttackSpeedRate () const
 
void UpdateAttackWarpTargetForRange (FName WarpTargetName=FName("Target"))
 
void UpdateAttackWarpTargetForRange (FName WarpTargetName, ITargetableInterface *Target)
 
- UGA_Base(으)로부터 상속된 Protected 멤버 함수
UCharacterMotionWarpingComponentBase * GetMotionWarpingComponent () const
 
void SetupCancelableListener ()
 
void OnCancelableInputDetected (FGameplayEventData Payload)
 
virtual void HandleCancelable (FGameplayEventData Payload)
 
virtual void OnAbilityMontageCompleted ()
 
virtual void OnAbilityMontageInterrupted ()
 
virtual void OnAbilityMontageCancellable ()
 

Protected 속성

FGameplayTag CooldownTag
 
float CostValue
 
float CooldownDuration
 
- UGA_CombatBase(으)로부터 상속된 Protected 속성
TObjectPtr< UCombatDataBaseCombatData
 
float AttackRange = 450.0f
 
float AttackRangeCorrectionDistance = 250.0f
 
float AttackRangeCorrectionInnerOffset = 30.0f
 
TObjectPtr< UAT_TraceActiveTraceTask
 
TArray< TSubclassOf< UGameplayEffect > > SelfEffectClasses
 
FGameplayTag WeaponHitCueTag
 
TArray< TObjectPtr< UAudioEmitterComponent > > CachedAudioTagComponents
 

Private 속성

FGameplayTagContainer TempCooldownTags
 

멤버 함수 문서화

◆ ActivateAbility()

void UGA_SkillBase::ActivateAbility ( const FGameplayAbilitySpecHandle  Handle,
const FGameplayAbilityActorInfo *  ActorInfo,
const FGameplayAbilityActivationInfo  ActivationInfo,
const FGameplayEventData *  TriggerEventData 
)
overridevirtual

UGA_Dash, UGA_Skill_Charge, UGA_Skill_StarFall, UGA_Skill_StarField, UGA_Skill_Strike에서 재구현되었습니다.

49{
50 Super::ActivateAbility(Handle, ActorInfo, ActivationInfo, TriggerEventData);
51
52 if (!CommitAbility(Handle, ActorInfo, ActivationInfo))
53 {
54 EndAbility(Handle, ActorInfo, ActivationInfo, false, true);
55 return;
56 }
57
58 ACharacter* TargetCharacter = Cast<ACharacter>(ActorInfo->AvatarActor.Get());
59
60 if (!TargetCharacter)
61 {
62 EndAbility(Handle, ActorInfo, ActivationInfo, false, true);
63 return;
64 }
65
66 ApplyEffectsToSelf(Handle, ActorInfo, ActivationInfo);
67
68 if (UCharacterMotionWarpingComponentBase* WarpComponent = GetMotionWarpingComponent())
69 {
70 WarpComponent->RotateCharacterToNearestTarget();
71 }
72
75
76 if (!HasExtendedData<FSingleMontageData>())
77 {
78 return;
79 }
80
81 UAnimMontage* SkillActionMontage = GetSkillMontage();
82
83 if (SkillActionMontage == nullptr)
84 {
85 return;
86 }
87
88 if (UAbilityTask_PlayMontageAndWait* PlayMontageTask = UAbilityTask_PlayMontageAndWait::CreatePlayMontageAndWaitProxy(this, TEXT("SkillMontage"), SkillActionMontage, 1.0f))
89 {
90 PlayMontageTask->OnCompleted.AddDynamic(this, &ThisClass::OnAbilityMontageCompleted);
91 PlayMontageTask->OnCancelled.AddDynamic(this, &ThisClass::OnAbilityMontageCancellable);
92 PlayMontageTask->OnInterrupted.AddDynamic(this, &ThisClass::OnAbilityMontageInterrupted);
93 PlayMontageTask->ReadyForActivation();
94 }
95}
UCharacterMotionWarpingComponentBase * GetMotionWarpingComponent() const
Definition GA_Base.cpp:33
void SetupCancelableListener()
Definition GA_Base.cpp:53
void SetupHitCheckListener()
Definition GA_CombatBase.cpp:62
void ApplyEffectsToSelf(const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo)
Definition GA_CombatBase.cpp:265
virtual void EndAbility(const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo, bool bReplicateEndAbility, bool bWasCancelled) override
Definition GA_CombatBase.cpp:50
UAnimMontage * GetSkillMontage(FGameplayTag PlayMontageTag=FGameplayTag::EmptyTag) const
Definition GA_SkillBase.cpp:284
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ ApplyCombatData()

void UGA_SkillBase::ApplyCombatData ( )
overrideprotectedvirtual

UGA_CombatBase(으)로부터 재구현되었습니다.

UGA_Skill_Charge, UGA_Skill_StarFall, UGA_Skill_StarField, UGA_Skill_StrikeBase에서 재구현되었습니다.

24{
25 Super::ApplyCombatData();
26
27 if (!CombatData)
28 {
29 return;
30 }
31
32 if (const FSkillDatas* Payload = CombatData->FindExtendedData<FSkillDatas>())
33 {
34 CostValue = Payload->CostValue;
35 CooldownTag = Payload->CooldownTag;
36 CooldownDuration = Payload->CooldownDuration;
37 }
38
39 TempCooldownTags.Reset();
40
41 if (CooldownTag.IsValid())
42 {
44 }
45}
TObjectPtr< UCombatDataBase > CombatData
Definition GA_CombatBase.h:75
float CooldownDuration
Definition GA_SkillBase.h:59
FGameplayTagContainer TempCooldownTags
Definition GA_SkillBase.h:63
float CostValue
Definition GA_SkillBase.h:56
FGameplayTag CooldownTag
Definition GA_SkillBase.h:53
Definition ExtendedDatas.h:74

◆ ApplyCooldown()

void UGA_SkillBase::ApplyCooldown ( const FGameplayAbilitySpecHandle  Handle,
const FGameplayAbilityActorInfo *  ActorInfo,
const FGameplayAbilityActivationInfo  ActivationInfo 
) const
overridevirtual

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

328{
329 if (!CooldownTag.IsValid() || CooldownDuration < KINDA_SMALL_NUMBER)
330 {
331 return;
332 }
333
334 UGameplayEffect* CooldownGE = GetCooldownGameplayEffect();
335
336 if (!CooldownGE)
337 {
338 return;
339 }
340
341 FGameplayEffectSpecHandle SpecHandle = MakeOutgoingGameplayEffectSpec(CooldownGE->GetClass(), GetAbilityLevel());
342
343 if (SpecHandle.IsValid())
344 {
345 FGameplayTag DurationTag = TAG_DATA_COOLDOWN;
346 SpecHandle.Data->SetSetByCallerMagnitude(DurationTag, CooldownDuration);
347 SpecHandle.Data->DynamicGrantedTags.AddTag(CooldownTag);
348
349 (void)ApplyGameplayEffectSpecToOwner(Handle, ActorInfo, ActivationInfo, SpecHandle);
350 }
351 else
352 {
353 LOG_ERROR(LogCK, "%s가 유효하지 않습니다. ", NAMEOF(FGameplayEffectSpecHandle));
354 }
355}
#define LOG_ERROR(Category, Format,...)
Definition CK_UE.h:40
#define NAMEOF(Type)
Definition CK_UE.h:30
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ApplyCost()

void UGA_SkillBase::ApplyCost ( const FGameplayAbilitySpecHandle  Handle,
const FGameplayAbilityActorInfo *  ActorInfo,
const FGameplayAbilityActivationInfo  ActivationInfo 
) const
overrideprotectedvirtual
140{
141 if (CostValue < KINDA_SMALL_NUMBER)
142 {
143 return;
144 }
145
146 if (!GetCostGameplayEffect())
147 {
148 Super::ApplyCost(Handle, ActorInfo, ActivationInfo);
149 return;
150 }
151
152 FGameplayEffectSpecHandle SpecHandle = MakeOutgoingGameplayEffectSpec(GetCostGameplayEffect()->GetClass(), GetAbilityLevel());
153
154 if (SpecHandle.IsValid())
155 {
156 FGameplayTag CostTag = TAG_DATA_COST;
157 SpecHandle.Data->SetSetByCallerMagnitude(CostTag, -CostValue);
158 (void)ApplyGameplayEffectSpecToOwner(Handle, ActorInfo, ActivationInfo, SpecHandle);
159 }
160 else
161 {
162 LOG_WARNING(LogCK, "%s를 가져오지 못했습니다. ", NAMEOF(FGameplayEffectSpecHandle));
163 }
164}
#define LOG_WARNING(Category, Format,...)
Definition CK_UE.h:39

◆ CheckCost()

bool UGA_SkillBase::CheckCost ( const FGameplayAbilitySpecHandle  Handle,
const FGameplayAbilityActorInfo *  ActorInfo,
FGameplayTagContainer *  OptionalRelevantTags 
) const
overrideprotectedvirtual
99{
100 if (CostValue < KINDA_SMALL_NUMBER)
101 {
102 return true;
103 }
104
105 UGameplayEffect* CostGE = GetCostGameplayEffect();
106
107 if (!CostGE)
108 {
109 LOG_ERROR(LogCKAttribute, "Cost GE가 누락");
110 return false;
111 }
112
113 // 현재 소모값이 SkillEnergy 하나 뿐이기에 단일 방식 채용. 만약 소모값이 두개 이상이면 수정 해야 됨.
114 if (CostGE->Modifiers.IsEmpty())
115 {
116 return true;
117 }
118
119 const FGameplayModifierInfo& CostModifier = CostGE->Modifiers[0];
120 FGameplayAttribute CostAttribute = CostModifier.Attribute;
121
122 if (!CostAttribute.IsValid())
123 {
124 return true;
125 }
126
127 UAbilitySystemComponent* ASC = ActorInfo->AbilitySystemComponent.Get();
128
129 if (!ASC || !ASC->HasAttributeSetForAttribute(CostAttribute))
130 {
131 return true;
132 }
133
134 float CurrentValue = ASC->GetNumericAttribute(CostAttribute);
135 return CurrentValue >= CostValue;
136}

◆ ContainsAllMontageSections()

bool UGA_SkillBase::ContainsAllMontageSections ( const UAnimMontage *  Montage,
TArray< FName >  SectionNames 
) const
protected
304{
305 if (Montage == nullptr)
306 {
307 return false;
308 }
309
310 if (SectionNames.IsEmpty())
311 {
312 return false;
313 }
314
315 for (const FName& SectionName : SectionNames)
316 {
317 if (Montage->GetSectionIndex(SectionName) == INDEX_NONE)
318 {
319 return false;
320 }
321 }
322
323 return true;
324}
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetCooldownTags()

const FGameplayTagContainer * UGA_SkillBase::GetCooldownTags ( ) const
inline
47 {
48 return &TempCooldownTags;
49 }

◆ GetExtendedData()

template<typename T >
const T * UGA_SkillBase::GetExtendedData ( ) const
inlineprotected
69{
70 static_assert(std::is_base_of_v<FCombatExtendedData, T>, "GetExtendedData<T>: T must derive from FCombatExtendedData");
71 return CombatData ? CombatData->FindExtendedData<T>() : nullptr;
72}

◆ GetPlayerCurrentWeaponAttackRange()

float UGA_SkillBase::GetPlayerCurrentWeaponAttackRange ( ) const
protected
418{
419 const AMainPlayerCharacter* Player = Cast<AMainPlayerCharacter>(GetAvatarActorFromActorInfo());
420
421 if (Player == nullptr)
422 {
423 return 0.0f;
424 }
425
426 const UWeaponLoadoutComponent* WeaponLoadoutComponent = Player->GetWeaponLoadoutComponent();
427
428 if (WeaponLoadoutComponent == nullptr)
429 {
430 return 0.0f;
431 }
432
433 if (const UWeaponDefinition* CurrentWeaponDefinition = WeaponLoadoutComponent->GetCurrentDefinition())
434 {
435 return CurrentWeaponDefinition->AttackRange;
436 }
437 else
438 {
439 return 0.0f;
440 }
441}
Definition MainPlayerCharacter.h:39
Definition WeaponDefinition.h:77
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetSkillMontage()

UAnimMontage * UGA_SkillBase::GetSkillMontage ( FGameplayTag  PlayMontageTag = FGameplayTag::EmptyTag) const
protected
285{
286 UAnimMontage* ResultSkillActionMontage = nullptr;
287
288 if (PlayMontageTag.IsValid())
289 {
290 const FMontageMapData* PlayMontageData = GetExtendedData<FMontageMapData>();
291 ResultSkillActionMontage = PlayMontageData ? PlayMontageData->PlayMontageMap.Find(PlayMontageTag)->Get() : nullptr;
292 }
293 else
294 {
295 const FSingleMontageData* PlayMontageData = GetExtendedData<FSingleMontageData>();
296 ResultSkillActionMontage = PlayMontageData ? PlayMontageData->PlayMontage.Get() : nullptr;
297 }
298
299 return ResultSkillActionMontage;
300}
Definition ExtendedDatas.h:54
TMap< FGameplayTag, TObjectPtr< UAnimMontage > > PlayMontageMap
Definition ExtendedDatas.h:59
Definition ExtendedDatas.h:44
TObjectPtr< UAnimMontage > PlayMontage
Definition ExtendedDatas.h:49
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetSkillMontageSectionLength()

float UGA_SkillBase::GetSkillMontageSectionLength ( const UAnimMontage *  Montage,
FName  SectionName,
bool  bApplyPlayRate = false,
float  PlayRate = 1.0f 
) const
protected
209{
210 if (Montage == nullptr)
211 {
212 return 0.0f;
213 }
214
215 const int32 SectionIndex = Montage->GetSectionIndex(SectionName);
216
217 if (SectionIndex == INDEX_NONE)
218 {
219 LOG_ERROR(LogCK, "몽타주 섹션을 찾을 수 없습니다. SectionName: %s", *SectionName.ToString());
220 return 0.0f;
221 }
222
223 const float SectionLength = Montage->GetSectionLength(SectionIndex);
224
225 if (bApplyPlayRate == false)
226 {
227 return SectionLength;
228 }
229
230 const float CombinedPlayRate = FMath::Abs(PlayRate * Montage->RateScale);
231 return CombinedPlayRate < KINDA_SMALL_NUMBER ? 0.0f : SectionLength / CombinedPlayRate;
232}
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetTargetActor()

AActor * UGA_SkillBase::GetTargetActor ( ) const
protected
256{
257 const AMainPlayerCharacter* Player = Cast<AMainPlayerCharacter>(GetAvatarActorFromActorInfo());
258
259 if (Player == nullptr)
260 {
261 const AEnemyCharacterBase* EnemyCharacter = Cast<AEnemyCharacterBase>(GetAvatarActorFromActorInfo());
262 const auto PlayerManagement = UCK_BPFunctionLibrary::GetPlayerManagementSubsystem(GetWorld());
263 return EnemyCharacter && PlayerManagement ? PlayerManagement->GetPlayer() : nullptr;
264 }
265
266 UCameraTargetingComponent* TargetingComponent = Player->GetPlayerTargetingComponent();
267
268 if (TargetingComponent == nullptr)
269 {
270 return nullptr;
271 }
272
273 ITargetableInterface* Target = TargetingComponent->GetTargetable();
274
275 if (Target == nullptr)
276 {
277 return nullptr;
278 }
279
280 return ITargetableInterface::AsActor(Target);
281}
Definition EnemyCharacterBase.h:49
Definition TargetableInterface.h:20
static AActor * AsActor(ITargetableInterface *Interface)
Definition TargetableInterface.cpp:24
static UPlayerManagementSubsystem * GetPlayerManagementSubsystem(const UObject *WorldContextObject)
Definition CK_BPFunctionLibrary.cpp:86
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ HasClearStrikePath()

bool UGA_SkillBase::HasClearStrikePath ( const AMainPlayerCharacter Player,
const AActor *  TargetActor 
) const
protected
359{
360 if (Player == nullptr || TargetActor == nullptr)
361 {
362 return false;
363 }
364
365 const FVector StartLocation = Player->GetActorLocation();
366 const FVector TargetLocation = TargetActor->GetActorLocation();
367
368 // 회전(Yaw)용 평면 방향 — 캐릭터가 Pitch로 기울어지지 않도록 분리
369 FVector ToTargetFlat = TargetLocation - StartLocation;
370 ToTargetFlat.Z = 0.0f;
371
372 const FVector EndLocation = StartLocation + ToTargetFlat;
373
374 check(Player);
375 const UWorld* World = Player->GetWorld();
376 check(World);
377
378 if (FVector::DistSquared(StartLocation, EndLocation) < KINDA_SMALL_NUMBER)
379 {
380 return true;
381 }
382
383 FHitResult Hit;
384 FCollisionObjectQueryParams ObjectQuery;
385 ObjectQuery.AddObjectTypesToQuery(ECC_WorldStatic);
386
387 FCollisionQueryParams TraceParams(SCENE_QUERY_STAT(WarpStrikePathTrace), false);
388 TraceParams.AddIgnoredActor(Player);
389
390 constexpr float DebugDrawDuration = 3.0f;
391 constexpr float DebugDrawThickness = 3.0f;
392
393 if (World->LineTraceSingleByObjectType(Hit, StartLocation, EndLocation, ObjectQuery, TraceParams) == false)
394 {
395 DrawDebugLine(World, StartLocation, EndLocation, FColor::Green, false, DebugDrawDuration, 0, DebugDrawThickness);
396 return true;
397 }
398
399 DrawDebugLine(World, StartLocation, EndLocation, FColor::Red, false, DebugDrawDuration, 0, DebugDrawThickness);
400 DrawDebugPoint(World, Hit.ImpactPoint, 16.0f, FColor::Yellow, false, DebugDrawDuration);
401 const UPrimitiveComponent* HitComponent = Hit.Component.Get();
402
404 (
405 LogCK,
406 "Strike 경로 차단: Profile=%s Actor=%s Start=%s End=%s",
407 *(HitComponent ? HitComponent->GetCollisionProfileName().ToString() : TEXT("None")),
408 *(Hit.GetActor() ? Hit.GetActor()->GetName() : TEXT("None")),
409 *StartLocation.ToString(),
410 *EndLocation.ToString()
411 );
412
413 return false;
414}
#define LOG_INFO(Category, Format,...)
Definition CK_UE.h:38
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ HasExtendedData()

template<typename T >
bool UGA_SkillBase::HasExtendedData ( ) const
inlineprotected
77{
78 return GetExtendedData<T>() ? true : false;
79}

◆ ResetSkillMontagePlayRate()

void UGA_SkillBase::ResetSkillMontagePlayRate ( ) const
protected
236{
237 const ACharacter* Character = Cast<ACharacter>(GetAvatarActorFromActorInfo());
238
239 if (Character == nullptr || Character->GetMesh() == nullptr)
240 {
241 return;
242 }
243
244 UAnimInstance* AnimInstance = Character->GetMesh()->GetAnimInstance();
245
246 if (AnimInstance == nullptr)
247 {
248 return;
249 }
250
251 AnimInstance->Montage_SetPlayRate(GetSkillMontage(), 1.0f);
252}
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ SetAvatarMeshHidden()

void UGA_SkillBase::SetAvatarMeshHidden ( bool  bHidden) const
protected
168{
169 const ACharacter* Character = Cast<ACharacter>(GetAvatarActorFromActorInfo());
170
171 if (Character == nullptr)
172 {
173 return;
174 }
175
176 USkeletalMeshComponent* MeshComponent = Character->GetMesh();
177
178 if (MeshComponent == nullptr)
179 {
180 return;
181 }
182
183 MeshComponent->SetVisibility(bHidden == false, true);
184 MeshComponent->SetHiddenInGame(bHidden, true);
185}

◆ SetAvatarPawnCollisionResponse()

void UGA_SkillBase::SetAvatarPawnCollisionResponse ( ECollisionResponse  Response) const
protected
189{
190 const ACharacter* Character = Cast<ACharacter>(GetAvatarActorFromActorInfo());
191
192 if (Character == nullptr)
193 {
194 return;
195 }
196
197 UCapsuleComponent* CapsuleComponent = Character->GetCapsuleComponent();
198
199 if (CapsuleComponent == nullptr)
200 {
201 return;
202 }
203
204 CapsuleComponent->SetCollisionResponseToChannel(ECC_Pawn, Response);
205}
이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ CooldownDuration

float UGA_SkillBase::CooldownDuration
protected

◆ CooldownTag

FGameplayTag UGA_SkillBase::CooldownTag
protected

◆ CostValue

float UGA_SkillBase::CostValue
protected

◆ TempCooldownTags

FGameplayTagContainer UGA_SkillBase::TempCooldownTags
private

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