Paradies Project
Loading...
Searching...
No Matches
UBaseGameplayAbility Class Reference

프로젝트의 모든 게임플레이 어빌리티(GA)가 상속받아야 하는 기본 클래스입니다. More...

#include <BaseGameplayAbility.h>

Inheritance diagram for UBaseGameplayAbility:
Inheritance graph
Collaboration diagram for UBaseGameplayAbility:
Collaboration graph

Public Member Functions

 UBaseGameplayAbility ()
 생성자. 인스턴싱 정책(InstancingPolicy)을 설정합니다.
ACharacter * GetPlayerCharacterFromActorInfo () const
 어빌리티를 실행한 아바타 액터를 ACharacter로 형변환하여 반환합니다.
AController * GetPlayerControllerFromActorInfo () const
 어빌리티를 실행한 플레이어 컨트롤러를 반환합니다.
FGameplayEffectSpecHandle MakeSpecHandle (TSubclassOf< UGameplayEffect > EffectClass, float Level=1.0f)
 GameplayEffect를 적용하기 위한 스펙 핸들(SpecHandle)을 생성합니다. (택배 포장).
virtual void ActivateAbility (const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo, const FGameplayEventData *TriggerEventData) override
 어빌리티 시작 시 캐릭터에게 현재 사용 중인 스킬 인덱스를 알립니다.
virtual void EndAbility (const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo, bool bReplicateEndAbility, bool bWasCancelled) override
 어빌리티 종료 시 캐릭터의 스킬 시전 상태를 초기화(-1)합니다.
virtual bool CanActivateAbility (const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayTagContainer *SourceTags, const FGameplayTagContainer *TargetTags, OUT FGameplayTagContainer *OptionalRelevantTags) const override
 어빌리티 발동 조건을 검사합니다. (마나, 쿨타임 및 궁극기 중복 사용 방지)
void ApplySpecHandleToTarget (AActor *TargetActor, const FGameplayEffectSpecHandle &SpecHandle)
 생성된 스펙 핸들을 타겟 액터에게 적용합니다.
virtual void ApplyCooldown (const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo) const override
 엑셀 데이터의 쿨타임을 적용하기 위해 오버라이드
virtual bool CheckCost (const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, OUT FGameplayTagContainer *OptionalRelevantTags=nullptr) const override
 코스트(마나)가 충분한지 검사하는 함수
virtual void ApplyCost (const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo) const override
 코스트(마나)를 실제로 깎는 함수

Protected Member Functions

class AParadiseCameraManagerGetParadiseCameraManager () const
 현재 어빌리티 실행자의 카메라 매니저를 캐싱/반환하는 헬퍼 함수
class UAbilityTask_PlayMontageAndWait * PlayMontageAndWaitCallback (UAnimMontage *MontageToPlay, FName TaskInstanceName=NAME_None)
 몽타주를 재생하고 종료 콜백(OnMontageCompleted)을 자동으로 연결해주는 헬퍼 함수
const FCombatActionDataGetCombatDataFromActor ()
 캐릭터에게서 전투 데이터를 가져오는 함수 (캐싱 적용됨)
virtual void OnMontageCompleted ()
 몽타주 재생이 끝났거나, 중단되었을 때 호출됩니다. 어빌리티를 종료(EndAbility)시킵니다.
FCombatActionData GetCombatDataFromActorInfo (const FGameplayAbilityActorInfo *ActorInfo, const FGameplayAbilitySpecHandle Handle) const
 (안전용) CheckCost, ApplyCooldown 등 CDO에서 호출될 때 사용하는 함수입니다. 멤버 변수를 절대 수정하지 않고, 즉석에서 인터페이스를 통해 데이터를 가져옵니다.

Protected Attributes

ECombatActionType AbilityActionType = ECombatActionType::BasicAttack
 이 어빌리티의 정체성 (평타 vs 스킬)

Detailed Description

프로젝트의 모든 게임플레이 어빌리티(GA)가 상속받아야 하는 기본 클래스입니다.

이 클래스는 반복적인 GAS API 호출을 줄여주는 유틸리티 함수들을 제공합니다. 특히, 캐릭터가 가진 WeaponID를 통해 데이터 관리 서브시스템(Subsystem)에서 실제 무기 데이터를 조회해오는 기능을 포함합니다.

Member Function Documentation

◆ ActivateAbility()

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

어빌리티 시작 시 캐릭터에게 현재 사용 중인 스킬 인덱스를 알립니다.

Reimplemented in UAreaActionBase, and UProjectileAttackBase.

◆ ApplySpecHandleToTarget()

void UBaseGameplayAbility::ApplySpecHandleToTarget ( AActor * TargetActor,
const FGameplayEffectSpecHandle & SpecHandle )

생성된 스펙 핸들을 타겟 액터에게 적용합니다.

  • Parameters
    TargetActor이펙트를 맞을 대상 액터.
    SpecHandleMakeSpecHandle로 생성한 핸들.
Here is the caller graph for this function:

◆ EndAbility()

void UBaseGameplayAbility::EndAbility ( const FGameplayAbilitySpecHandle Handle,
const FGameplayAbilityActorInfo * ActorInfo,
const FGameplayAbilityActivationInfo ActivationInfo,
bool bReplicateEndAbility,
bool bWasCancelled )
overridevirtual

어빌리티 종료 시 캐릭터의 스킬 시전 상태를 초기화(-1)합니다.

Reimplemented in UProjectileAttackBase.

Here is the caller graph for this function:

◆ GetCombatDataFromActor()

const FCombatActionData & UBaseGameplayAbility::GetCombatDataFromActor ( )
protected

캐릭터에게서 전투 데이터를 가져오는 함수 (캐싱 적용됨)

"무기가 바뀌지 않는다"는 전제 하에, 최초 1회만 검색하고 이후엔 저장된 값을 씁니다.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetPlayerCharacterFromActorInfo()

ACharacter * UBaseGameplayAbility::GetPlayerCharacterFromActorInfo ( ) const

어빌리티를 실행한 아바타 액터를 ACharacter로 형변환하여 반환합니다.

Returns
Cast에 성공하면 캐릭터 포인터, 실패하면 nullptr.

◆ GetPlayerControllerFromActorInfo()

AController * UBaseGameplayAbility::GetPlayerControllerFromActorInfo ( ) const

어빌리티를 실행한 플레이어 컨트롤러를 반환합니다.

Returns
컨트롤러 포인터 (AI의 경우 AIController일 수 있음).
Here is the caller graph for this function:

◆ MakeSpecHandle()

FGameplayEffectSpecHandle UBaseGameplayAbility::MakeSpecHandle ( TSubclassOf< UGameplayEffect > EffectClass,
float Level = 1.0f )

GameplayEffect를 적용하기 위한 스펙 핸들(SpecHandle)을 생성합니다. (택배 포장).

  • Parameters
    EffectClass적용할 GE 클래스 (Blueprint Class).
    Level어빌리티 레벨 (기본값: 1.0f). 데미지 계산식 등에서 활용됩니다.
    Returns
    생성된 FGameplayEffectSpecHandle. 실패 시 유효하지 않은 핸들 반환.
Here is the caller graph for this function:

◆ OnMontageCompleted()

void UBaseGameplayAbility::OnMontageCompleted ( )
protectedvirtual

몽타주 재생이 끝났거나, 중단되었을 때 호출됩니다. 어빌리티를 종료(EndAbility)시킵니다.

Reimplemented in UProjectileAttackBase.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PlayMontageAndWaitCallback()

UAbilityTask_PlayMontageAndWait * UBaseGameplayAbility::PlayMontageAndWaitCallback ( UAnimMontage * MontageToPlay,
FName TaskInstanceName = NAME_None )
protected

몽타주를 재생하고 종료 콜백(OnMontageCompleted)을 자동으로 연결해주는 헬퍼 함수

Parameters
MontageToPlay재생할 몽타주
TaskInstanceName태스크 이름 (보통 NAME_None)
Returns
생성된 Montage Task (추가적인 바인딩이 필요할 경우 사용)
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ AbilityActionType

ECombatActionType UBaseGameplayAbility::AbilityActionType = ECombatActionType::BasicAttack
protected

이 어빌리티의 정체성 (평타 vs 스킬)

블루프린트에서 설정합니다. (기본값: BasicAttack)

  • GA_Attack_Normal (평타) -> BasicAttack
  • GA_Skill_Smash (스킬) -> WeaponSkill

The documentation for this class was generated from the following files:
  • Source/Paradise/Public/GAS/Abilities/BaseGameplayAbility.h
  • Source/Paradise/Private/GAS/Abilities/BaseGameplayAbility.cpp